使用ruby线程
require 'net/http'
pages = %w{http://www.rubycentral.com http://slashdot.org http://www.google.com}
threads = []
for page_to_fetch in pages
threads << Thread.new(page_to_fetch) do |url|
puts "Fetching: #{url} thread:#{Thread.current}"
res = Net::HTTP.get_response(URI(url))
puts "Got #{url} #{res.message}"
end
end
threads.each{|thr| thr.join}
ruby "D:\testCodes\rubytest\thread.rb"
Fetching: http://www.rubycentral.com thread:#<Thread:0x1ab8cc0>
Fetching: http://www.google.com thread:#<Thread:0x1ab8bb8>
Fetching: http://slashdot.org thread:#<Thread:0x1ab8c18>
Got http://www.rubycentral.com OK
Got http://www.google.com Found
Got http://slashdot.org OK
count = 0
threads = []
10.times do |i|
threads[i] = Thread.new do
sleep(rand(0.1))
Thread.current["mycount"] = count
count += 1
end
end
threads.each{ |t| t.join; print t["mycount"],", "}
puts "count = #{count}"
ruby "D:\testCodes\rubytest\thread2.rb"
3, 0, 4, 8, 6, 9, 1, 5, 2, 7, count = 10