4

まず、eventlet や gevent などのグリーン スレッドを、標準ライブラリの python ネイティブ スレッド、つまり Lib/threading.py を同じ python プロセスに混在させても安全ですか?

第二に、もしそれが安全なら、それは悪い考えですか?

4

2 に答える 2

6

スレッドセーフではないため、これgevent < 1.0はおそらく悪い考えです。libeventOS スレッドが決して対話しないようにすれば問題ないかもしれませんが、libeventそれは難しいかもしれません。またlibevent、スレッド セーフの欠如によって引き起こされるバグは、デバッグするのが楽しいとは思えません。

ただし、完全にスレッドセーフな をgevent >= 1.0使用します。libevしたがって、(私が知る限り) グリーン スレッドと OS スレッドを混在させても問題はありません。

于 2012-06-12T06:45:40.907 に答える
-2

gevent は、スレッドのモンキー パッチ機能を提供します。

Greenlet は 1 つのスレッド内でのみ相互に切り替わるため、1 つのスレッドの greenlet は完全に分離され、別のスレッドとは通信できなくなります。

パフォーマンスの必要性があることを示すまで、グリーンレットの複数のスレッドを使用することはお勧めしません。

于 2012-03-11T16:58:19.240 に答える