2012-03-09 5 views

답변

5

gevent < 1.0libevent이 스레드로부터 안전하지 않기 때문에 가장 좋은 방법 일 수 있습니다. OS 스레드가 절대로 libevent과 상호 작용하지 않는다는 것을 확신한다면 괜찮을 것입니다. 그러나 이것은 까다로울 수 있으며, libevent의 스레드 안전성 부족으로 인해 디버그가 재미 있지는 않습니다.

그러나 gevent >= 1.0은 전체적으로 스레드 안전 인 libev을 사용합니다. 그래서 (내가 말할 수있는 한) 녹색 스레드와 OS 스레드를 혼합해도 아무런 문제가 없습니다.

-1

gevent는 스레드에 대해 monkey patching abilities을 제공합니다.

글 머리 기호는 하나의 스레드 내에서만 서로 전환되므로 하나의 스레드의 그린렛은 다른 글 머리 기호와 완전히 별개이며 다른 글 머리 기호와 통신 할 수 없습니다.

퍼포먼스가 필요하다는 것을 알기 전까지는 여러 개의 greenlets 스레드를 사용하지 않는 것이 좋습니다.

+0

좋은 생각이 아닌 이유에 대한 설명이 여기에없는 것 같습니다. –

+0

@ NiklasB. 멀티 스레딩은 항상 혼란과 추적하기 어려운 버그의 원인 일 수 있습니다. 그래서 당신이 멀티 스레딩에서 아무것도 얻지 못한다면 (또는 아주 적게), 더 잘 피하십시오. – sloth