파이썬 코 루틴 :
또한 마이크로 스레드라는 코 루틴은 파쇄. . 코 루틴은 사용자 가벼운 스레드 상태 : 코 루틴 영어 단어는 코 루틴이 무엇인지 설명한다.
코 루틴은 자신의 스택을 가지고 있으며, 컨텍스트를 등록합니다. 코 루틴 예약 핸드 오버, 레지스터 문맥을 저장하고 다른 위치에 적층 할 때, 다시 컷
이전에 저장 한 레지스터 문맥과 스택을 복원합니다. 따라서 : 코 루틴 마지막 통화로 남아있을 수있다 (즉, 로컬 상태 모두의 특정 조합)
각 오목 통화 상태에 상당하는 동안. 논리 흐름의 위치가로 종료 할 때, 다시 말하면
코 루틴 혜택 :
-
문맥 전환의 오버 헤드를 스레드 불필요
- 원자 작업이 잠금 및 동기화를 시작할 필요가 없습니다
- 스위치 제어 흐름 간략화 프로그래밍 모델을 용이
- 높은 동시성 + 확장 성 + 저렴한 비용 : 지원 코 루틴의 CPU 만 문제, 높은 동시 처리에 대한 모든 매우 적합하지 않습니다
코 루틴 단점 :
- CUP 멀티 코어를 활용할 수 없다,
- 수 차단 (차단) 작업은 전체 프로그램을 차단하는 것
1.1 수율 코 루틴 :
수입 시 수입 큐 데프 소비자 (이름) : 인쇄 ( ' -------------- ------------ 시작 ' ) 동안 트루 new_baozi = 수율 인쇄 ( ' % s이 (가) 바 오즈 % s을 먹고 ' % (이름, new_baozi)) time.sleep ( 1 ) 데프 프로듀서 () : R = 사기꾼. __next__ () # 也可以다음 (콘)是 R = CON2. __next__ () N = 0 동안N <5 : N + 1 = con.send (N) con2.send (N) 의 인쇄 ( " ; \ 033 32은 0m 바 오즈 %의 S 만드는 033 \ 1m [제조자] " %의 N)를 경우 __name__ == " __main__ " : 콘 = 사용자 ( ' C1 ' ) CON2 = 사용자 ( " C2 " ) P = 제조자 ()