코루틴에 관해 가장 많이 읽을 수 있는 것은 "코루틴은 사용자 모드 스레드입니다"라는 문장입니다.
"사용자 모드 스레드"가 무엇인지 이해하려면 먼저 "커널 모드 스레드"가 무엇인지 이해해야 합니다. 커널 상태 스레드는 운영 체제에 의해 예약됩니다. 스레드 컨텍스트를 전환할 때는 먼저 이전 스레드의 컨텍스트를 저장한 후 다음 스레드를 실행해야 합니다. 조건이 충족되면 이전 스레드로 다시 전환하고 컨텍스트를 복원합니다. 사용자 모드 스레드가 운영 체제에 의해 예약되지 않고 프로그래머에 의해 사용자 모드에서 예약된다는 점을 제외하면 코루틴의 경우에도 마찬가지입니다.
yield这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yieldCPU를 계속 실행하여 비동기 코드를 동기 방식으로 작성할 수 있습니다.
프로세스, 스레드 및 코루틴 이해
코루틴에 관해 가장 많이 읽을 수 있는 것은 "코루틴은 사용자 모드 스레드입니다"라는 문장입니다.
"사용자 모드 스레드"가 무엇인지 이해하려면 먼저 "커널 모드 스레드"가 무엇인지 이해해야 합니다. 커널 상태 스레드는 운영 체제에 의해 예약됩니다. 스레드 컨텍스트를 전환할 때는 먼저 이전 스레드의 컨텍스트를 저장한 후 다음 스레드를 실행해야 합니다. 조건이 충족되면 이전 스레드로 다시 전환하고 컨텍스트를 복원합니다. 사용자 모드 스레드가 운영 체제에 의해 예약되지 않고 프로그래머에 의해 사용자 모드에서 예약된다는 점을 제외하면 코루틴의 경우에도 마찬가지입니다.
yield
这个关键字就是用来产生中断, 并保存当前的上下文的, 比如说程序的一段代码是访问远程服务器,那这个时候CPU就是空闲的,就用yield
让出CPU,接着执行下一段的代码,如果下一段代码还是访问除CPU以外的其它资源,还可以调用yield
CPU를 계속 실행하여 비동기 코드를 동기 방식으로 작성할 수 있습니다.