저는 아직도 greenlets과 gevent에 익숙하지 않지만, 이해하는 것으로부터, greenlets은 명시 적 yield 문이나 블로킹 I/O 작업에서 다른 greenlets에 양보합니다. 하지만 print 문을 사용하여 stdout에 쓰기가 차단되어 있습니까? 로깅 모듈을 사용하여 stdout, stderr 또는 로컬 디스크의 파일이나 NFS에 기록하는 것은 어떻습니까?로깅이나 인쇄 방법으로 그린렛을 전환 할 수 있습니까?
print 문 또는 로깅 방법을 호출하면 녹색 알레르기가 전환 될 수 있습니까?
그린렛 단독으로는 결코 암시 적으로 양보하지 않는다. gevent가 여러 가지 표준 라이브러리 객체를 패치하여 그 효과를 얻는 것이 가능합니다 (그러나 나는 그것을 암시 할 수 없기 때문에 이것은 단지 주석이 될뿐 응답이 아닙니다 :-). –
gevent에는 특정 모듈을 IO 호출을 차단할 때 다른 greenlet에 생성되는 버전으로 대체 할 수있는 원숭이 패치 작업이 있습니다 (예 : gevent.socket). 그런 다음 궁금한 사항은 gevent.monkey.patch_all은 로깅 모듈에서 사용하는 함수를 다른 greenlets에 제공되는 버전으로 바꿉니 까? – iHateCamelCase