タグ

programmingとacceptに関するhiroyukimのブックマーク (2)

  • シングルスレッドで非同期socket通信 - 日々量産

    C言語でSocketを使って通信する物を作るのだが、 1対多の通信 非同期通信 プロセスとスレッドを使わない。 という条件になると、必然的にselectを使った通信になる。 レスポンスはこの際置いておいて、条件を満たせれば良いとする。 メモ書き程度なモノだし、間違っているかもしれない。 参考 http://www.golgo.jp/winsock.html winsockプログラミング:Geekなぺーじ 非同期通信 まず非同期通信の前に対義語の同期通信を知る必要がある。 同期通信とは、例えばキーボード入力する必要があるときは入力を終えるまで待つ。 非同期通信は、まんま逆で、入力を待たない。 どういうときに非同期通信をするのかといえば、例えば会話。 会話をするときは、1文話して1文聞く。 しかし、聞く為には、発言をするまで待たないといけない、とした場合、 自分が発言して相手の発言を待つ、と相

    シングルスレッドで非同期socket通信 - 日々量産
  • prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリー

    Catalyst を POE で動かす Engine の Catalyst::Engine::HTTP::POE という実装が CPAN にあります。"Single-threaded multi-tasking Catalyst engine " だそうです。"Single-threaded" と言いつつも実装を覗いてみると環境変数 CATALYST_POE_MAX_PROC を 1 よりも大きく設定することで prefork する実装になってます。POEシングルスレッドではアプリケーション内で発生するブロックを避けることが難しいのでそのための実装じゃないかなと思います。 ところでこの Catalyst POE エンジン、prefork の実装はどのように行っているかというと POE から prefork と名の付いたイベントが発生するとおもむろに子プロセスを生成する、というのもの。複数の

    prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリー
  • 1