質問

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

ジェームズ

役に立ちましたか?

解決

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

とはいえ、上記のシナリオがありそうにない場合(つまり、すべてのクライアントが同じリソースを要求する)、イベント駆動型が進む方法です。

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top