ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • What is Coroutine? - 2
    카테고리 없음 2016. 11. 9. 21:48


    코루틴의 특성

    1) 특정 작업을 단계적으로 발생하게 한다
    2) 시간이 흐름에 따라 발생하는 루틴을 작성할 수 있다.
    3) 다른 연산이 완료될때까지 기다리는 루틴을 작성할 수 있다. 



    쓰레드와 코루틴

    코루틴은 쓰레드가 아니다. 코루틴은 비동기가 아니다 ( 비동기가 아니다라는 말은 쉽게 말해서 동시에 발생하지 않는다는 뜻이다. )

    쓰레드는 프로그램에서 다른 쓰레드와 함께 비동기로 실행된다. 멀티프로세서에서 쓰레드는 실제 다른 쓰레드와 함께 동시에 코드가 실행될 수 있다. 여러 쓰레드를 사용하는 멀티스레드 프로그래밍은 코드를 이해하기 복잡하게 만든다. 왜냐하면 하나의 쓰레드는, 다른 쓰레드의 특정 부분을 읽고 있는 동시에, 그것을 변경할 수 있기 때문이다. 이 때문에, 공유 메모리영역을 만들지 않거나, 공유된 자원을 읽거나 변경시켜야 되는 경우라면 공유된 자원으로부터 다른 쓰레드를 잠궈버림으로써 이런 상황이 발생하지 않도록 해야할 것이다.



    코루틴이란 무엇인가?

    코루틴은 쓰레드가 아니다. 이는 한번에 오직 하나의 코루틴이 실행되고, 메인 쓰레드에서 코루틴이 실행된다는 것을 의미한다. 

    코루틴의 정의 : 
    코루틴은 부분적으로, 그리고 특정한 상황이 맞아 떨어졌을 때 실행되는 함수로써, 
    그 작업이 완료되기전까지, 미래의 어느 시점에 재개될 수 있다.

    유니티에서는 코루틴을 하나 혹은 여러개를 가지는 모든 객체에 대해서 게임의 모든 프레임마다 코루틴을 처리한다. 이 처리는 대부분의 yield 문에 대해서 Update가 끝나고, LateUpdate가 시작하기전에 발생한다.4



    코루틴이 활성화 되었을 때, 바로 다음 yield 문까지 실행되고, 그것은 다시 시작될 때까지 일시정지한다. 

    끄읕.


Designed by Tistory.