오늘 저는 인터넷에서 섬유, 코 루틴 및 녹색 실에 대한 여러 기사를 읽었습니다.이 개념은 공통점이 많지만 특히 섬유 및 코 루틴에 대해 이야기 할 때 약간의 차이가 있습니다.
서로 다른 점에 대한 간결하고 정확한 요약이 있습니까?
업데이트 : Distinguishing coroutines and fiber (N4024 C ++ draft) 문서가 섬유와 코 루틴을 구별하는 데 특히 좋습니다.
오늘 저는 인터넷에서 섬유, 코 루틴 및 녹색 실에 대한 여러 기사를 읽었습니다.이 개념은 공통점이 많지만 특히 섬유 및 코 루틴에 대해 이야기 할 때 약간의 차이가 있습니다.
서로 다른 점에 대한 간결하고 정확한 요약이 있습니까?
업데이트 : Distinguishing coroutines and fiber (N4024 C ++ draft) 문서가 섬유와 코 루틴을 구별하는 데 특히 좋습니다.
답변:
섬유는 선점 형 멀티 태스킹 대신 협동 멀티 태스킹을 사용하는 경량 스레드입니다. 실행중인 파이버는 다른 파이버를 실행할 수 있도록 명시 적으로 "수율"해야하므로 커널 또는 사용자 스레드보다 훨씬 쉽게 구현할 수 있습니다.
코 루틴 은 서브 루틴을 일반화하여 특정 위치에서 실행을 일시 중단 및 재개하기위한 여러 진입 점을 허용하는 구성 요소입니다. 서브 루틴과 달리 코 루틴은 다른 코 루틴을 호출하여 종료 할 수 있으며 나중에 원래 코 루틴에서 호출 된 지점으로 돌아갈 수 있습니다.
녹색 스레드는 기본 운영 체제에서 가상 머신 (VM) 대신에 기본적으로 예약 된 스레드입니다. 녹색 스레드는 기본 OS 기능에 의존하지 않고 멀티 스레드 환경을 에뮬레이션하며 커널 공간 대신 사용자 공간에서 관리되므로 기본 스레드 지원이없는 환경에서 작동 할 수 있습니다.