[Tistory] 코루틴(Coroutine) 개념 / 코루틴과 스레드 / 코루틴과 invoke

원글 페이지 : 바로가기

코루틴 – 협력형 멀티 태스킹 더보기 [코루틴의 의미] Co 라는 접두어가 협력을 의미한다면, Routine은 함수, task를 의미한다. 즉, 협력하는 함수라고 생각하자. 실제로 코루틴을 호출할 때에도 메서드 호출처럼 사용한다. Routine에는 메인루틴과 서브루틴이 존재한다. 코루틴은 메인루틴과 서브루틴이 아닌, 다른 루틴이라고 보면된다. 메인루틴과 서브루틴 / 코루틴 – 메인 루틴이 서브루틴을 호출하면, 서브루틴의 맨 처음 부분에 진입하여 return문을 만나거나 서브루틴의 닫는 괄호를 만나면 해당 서브루틴을 빠져나오게 된다. – 코루틴은 진입할 수 있는 진입점도 여러개고, 함수를 빠져나갈 수 있는 탈출점도 여러개다. – 즉, 코루틴 함수는 꼭 return문이나 마지막 닫는 괄호를 만나지 않더라도, 언제든지 나갈 수 있고, 언제든지 다시 나갔던 지점으로 들어올 수 있다. [c# 에서의 코루틴 사용] 1. IEnumerator라는 반환형으로 시작 2. yield return 이 반드시 함수 내부에 존재 코루틴은 다음과 같이 호출한다. StartCoroutine( 메소드이름( 매개변수1, 매개변수2 ) );
StartCoroutine( “메소드이름”, 매개변수 ); 더보기 yield return 의 종류 1. yield return null; : 다음 프레임에 실행 2. yield return new WaitForSeconds( float ); : 매개변수로 입력한 숫자에 해당하는 초만 큼 기다렸다가 실행 3. yield return new WaitForSecondsRealtime( flaot ); : 매개변수로 입력한 숫자에 해당하는 초만큼 기다렸다가 실행 4. 그외 : yield return + new WaitForFixedUpdate / WaitForEndOfFrame 등 5. yield break; 코루틴과 스레드 더보기 스레드 – – 코루틴은 스레드가 아니라 일반 서브루틴과 비슷한 하나의 루틴이다. 루틴이므로 하나의 스레드에 여러 개가 존재할 수 있다. => 코루틴을 사용해 스레드 하나에서 동시성 프로그래밍이 가능하다. invoke 참고자료 https://wooooooak.github.io/kotlin/2019/08/25/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%BD%94%EB%A3%A8%ED%8B%B4-%EA%B0%9C%EB%85%90-%EC%9D%B5%ED%9E%88%EA%B8%B0/

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다