9

私は現在、いくつかのイベントコードを書いています(geventを使用するpythonで)。nginxをWebサーバーとして使用していますが、どちらも素晴らしいと感じています。イベントにはトレードオフがあると言われましたが、見ることができませんでした。誰かが光を当てることができますか?

ジェームズ

4

2 に答える 2

9

イベントプログラミングの唯一の難しさは、ブロックしてはいけないということです。スレッドを念頭に置いて設計されたライブラリを使用する場合、これを実現するのは難しい場合があります。これらのライブラリを制御しない場合は、fork()+メッセージipcが最適です。

于 2010-11-27T10:37:00.377 に答える
1

最大の問題は、スレッドがないと、1 つのクライアントがブロックされると、すべてのクライアントがブロックされることです。たとえば、1 つのクライアントがリソース (ディスク上のファイル、ページアウトされたメモリなど) を要求した場合、OS が要求プロセスをブロックする必要がある場合、すべてのクライアントは待機する必要があります。マルチスレッド サーバーは、1 つのクライアントだけをブロックし、他のクライアントにサービスを提供し続けることができます。

とはいえ、上記のシナリオが当てはまらない場合 (つまり、すべてのクライアントが同じリソースを要求する場合) は、イベント駆動型が適しています。

于 2010-11-10T03:00:07.567 に答える