From: Kenya OGATA Date: 2000-12-04T18:47:59+09:00 Subject: [ruby-list:26313] 並行するスレッドの記述法について おがたといいます。 最近、雑誌記事に興味を感じてネットワークプログラミングを試みています。 そこで、初めて Thread を使ってみたのですが、美しい組み方が出来ないのです。 具体的には複数の Thread で同一の処理を平行して行うものなのですが、 理想的には ----------> Main Thread ------------------> |-----| |------------| |-----| といきたいところを |--------| のような書き方でしか表せません。下記のコードのようなものなのですが... 何かうまい書き方はないでしょうか。 def seek main_th = Thread.current Thread.start{ begin request_thread(@thread_count).join ensure main_th.wakeup end } @request_queue.push(:REQUEST_QUEUE_LASTCODE) Thread.stop @request_queue.clear end def request_thread(thread_count) th = Thread.start{ while true begin request = @request_queue.pop break if request == :REQUEST_QUEUE_LASTCODE unless respond_to?(:quest) || quest(request) @next.request_push(request) if @next end rescue Exception print $! end end @request_queue.push(:REQUEST_QUEUE_LASTCODE) } if thread_count > 1 request_thread(thread_count-1).join end return th end