0

C++ でスケジューリングと同期を使用してマルチスレッド Web サーバーを実行したいと考えています。プログラムの流れ。

ここに私が持っているいくつかの質問があります

1)ソケットaccept()まで行ったので、新しい接続が来ると、fork()して子プロセスの接続を閉じる必要があります。そうですか?

2) 非常に多くのスレッドが実行されているときにプログラムが同期されていることを確認するにはどうすればよいですか?

3) 2 つのスレッド プールが必要です。ワーカーの 1 つのプールと、接続を受け入れて要求をレディ キューに挿入するための 2,1 のプールがあります。これを行うにはどうすればよいですか?

コードについて質問しているわけではありません。ヒントとガイダンスが必要なだけです。どうもありがとうございました。

4

1 に答える 1

2

非常に興味深いコースワークです。これに取り組めば、多くの概念、つまり並行性とその主要なユースケースの 1 つであるネットワーキングが明らかになります!

私自身、次の記事を使用して、Linux でのネットワーク同時実行のオプションの概要を簡単にまとめました。

http://m.linuxjournal.com/content/three-ways-web-server-concurrency?page=0,0

この記事では、フォークされたプロセスのコピー オン ライトなど、必要となる概念について非常に高レベルの概要を示します。その結果、特定のケースでは同期を無効にする個別のアドレス スペースが必要になります。この記事のコードから始めて、手を汚し始めてください。

于 2012-09-27T22:12:20.113 に答える