[#36686] 1.1 < 61.1 - 60.0 — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2002/12/06

[#36770] www.ruby-lang.orgリニューアル準備のお知らせ — TADA Tadashi <sho@...>

ruby-lang.orgのwebmasterチームでは、タイムリーな情報提供と使いやすい

11 messages 2002/12/16

[ruby-list:36793] Thread と Net::HTTP

From: Makoto Satoh <makotosato2@...>
Date: 2002-12-17 04:09:24 UTC
List: ruby-list #36793
佐藤と申します。

配列に入っているデータをループしながら、そのデータを URL の一部に
使ってウェブページを取得しようとしています。

ary.each do |elm|
  Net::HTTP.start(host).get("/path/include/#{elm}.html") do |chunk|
    puts chunk
  end
end

で、このウェブページの取得にかなり時間がかかる場合があるので、これを
スレッドにしてみようと思いました。

ary.each do |elm|
  Thread.start {
    puts "Thread started with #{elm}."
    Net::HTTP.start(host).get("/path/include/#{elm}.html") do |chunk|
      puts chunk
    end
  }
end

しかし、上のコードでThread started with #{elm}.は表示されるのに、その
次の行は実行されていないようなのです。

irb で、以下のようにしたところ、#<Thread:-x2b060a8 dead> と表示されました。

irb(main):004:0> Thread.start {
irb(main):005:1* Net::HTTP.new("www.yahoo.co.jp").get("/index.html") do |str| puts str end
irb(main):006:1> }
#<Thread:0x2b060a8 dead>

スレッドの中では、Net::HTTP.start は使えないのでしょうか?
あるいは、やりかたがまずいでしょうか?
ご教授いただけましたら幸いです。

環境は、W2K SP3 + Ruby 1.6.7 mswin です。

--
Makoto Satoh
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/


In This Thread

Prev Next