코루틴x )
yield return,IEnumerator 일드 리턴, 이너머레이터 사용 X
unity async await yield enumerate 차이
https://wonseok1112.tistory.com/28
스레드와 동기
https://wonseok1112.tistory.com/27
유니티 어드레서블(addressable)을 사용하여 q키를 눌렀을 때 에셋 레퍼런스를 로드하는 예시이다.
LoadAssetAsync<GameObject>() 메서드로 비동기로 에셋을 로드하고, await 키워드를 사용하여
해당 로드 작업이 완료될때까지 대기한다. Task 속성을 사용하여 비동기 작업을 시작하고,
작업이 완료되면 로드된 에셋을 반환한다.
1.unity async await yield enumerate 차이
코루틴과 async,awit의 차이
코루틴은 동기방식
비동기 사용하는 상황: 네트워크 서버통신을 하는경우, 용량이 큰 파일을 로드하거나 접근할때
ex)
코루틴은 동기이기때문에 탈출못함
작업의 용량 자체가 매우 큰 경우 또는 작업이 언제 끝날지 모르는 경우,
작업의 진행 시간이 매우 길어 블로킹(blocking) 상태가 오래 지속되는 경우에
async/await 비동기 방식을 사용해야 한다.
ex)
유니티 async / await 사용 예시
2.스레드와 동기
Unity에서 일반적으로 사용하는 함수 호출 방식은 동기
1. 동기식 싱글 스레드
본점에서 음식을 주문 -> 조리 완료 -> 다음 주문받음
2. 비동기식 싱글 스레드
본점에서 음식을 주문 -> 조리 및 주문받기 -> 조리가 빠른 순서대로 제공
3. 동기식 멀티 스레드
본점, 1호점, 2호점 중 한곳에서 음식을 주문 -> 조리 완료 -> 다음 주문받음
4. 비동기식 멀티 스레드
본점, 1호점, 2호점 중 한 곳에서 음식을 주문 -> 조리 및 주문받기 -> 조리가 빠른 순서대로 제공
3. 용어정의
프로세스란
작업의 단위
유튜브를 보면서 인터넷서핑을 하는 행위가 여러 프로레스를 동시에 실행
프로세스간에는 메모리등의 자원을 공유하지 않음
스레드란
흐름의 단위
한 프로세스에서 여러 스레드
동기란(synchrous)
task가 끝날때까지 계속 기다림
비동기란(async)
작업을 다른곳으로 보내고 기다리지 않음
각자할일함
'유니티' 카테고리의 다른 글
정규표현식 Regex(IsMatch) (1) | 2025.01.08 |
---|---|
unity c# string.Format (0) | 2025.01.08 |
[Unity] Graphics API (OpenGL/DirectX) (2) | 2025.01.07 |
SHA1, SHA245 키 얻기 unity (1) | 2025.01.03 |
[error]unity addressable asset invalidkeyexception with aws (0) | 2025.01.03 |