파이썬 파이썬 롤로의 코 루틴 수율과 gevent 연구 노트 [웨이]

파이썬 코 루틴 :

또한 마이크로 스레드라는 코 루틴은 파쇄. . 코 루틴은 사용자 가벼운 스레드 상태 : 코 루틴 영어 단어는 코 루틴이 무엇인지 설명한다.

코 루틴은 자신의 스택을 가지고 있으며, 컨텍스트를 등록합니다. 코 루틴 예약 핸드 오버, 레지스터 문맥을 저장하고 다른 위치에 적층 할 때, 다시 컷

이전에 저장 한 레지스터 문맥과 스택을 복원합니다. 따라서 : 코 루틴 마지막 통화로 남아있을 수있다 (즉, 로컬 상태 모두의 특정 조합)

각 오목 통화 상태에 상당하는 동안. 논리 흐름의 위치가로 종료 할 때, 다시 말하면

 

코 루틴 혜택 :

  • 문맥 전환의 오버 헤드를 스레드 불필요

  • 원자 작업이 잠금 및 동기화를 시작할 필요가 없습니다
  • 스위치 제어 흐름 간략화 프로그래밍 모델을 용이
  • 높은 동시성 + 확장 성 + 저렴한 비용 : 지원 코 루틴의 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 = 제조자 ()

 

추천

출처www.cnblogs.com/rollost/p/10974607.html