블로그를 방치해 두기 뭐해서 찌끌여 본다능. thread 패키지?? 아무튼 thread를 require 하면 Queue 클래스를 쓸 수 있다능. 매우매우 고맙게도 스레드 세이프하다능. >_<
#!/usr/local/bin/ruby
require 'thread'
queue = Queue.new
producer = Thread.new do
5.times do |i|
sleep rand(i) # simulate expense
queue << i
puts "#{i} produced"
end
end
consumer = Thread.new do
5.times do |i|
value = queue.pop
sleep rand(i/2) # simulate expense
puts "consumed #{value}"
end
end
producer.join
consumer.join
|
실행결과
0 produced
1 produced
consumed 0
consumed 1
2 produced
3 produced
consumed 2
4 produced
consumed 3
consumed 4
|
코드 패드에서는 퍼미션 문제로 실행은 안되고...로컬에서 돌린걸 붙여넣었다능
'루비' 카테고리의 다른 글
| SWIG Ruby (0) | 2010/03/29 |
|---|---|
| 중위표현식을 후위포현식으로 바꾸기 (0) | 2009/11/28 |
| Queue (6) | 2009/09/22 |
| tmpdir (0) | 2009/06/20 |
| BitArray from sloth (3) | 2009/03/17 |
| ruby 숫자에 세자리마다 쉼표를 집어넣기 (0) | 2008/11/05 |

댓글을 달아 주세요
오옷 저렇게 간단한 쓰레드 프로그래밍이!
OOP랭귀지가 다 그러치 뭘 그러냐능
우왕 횽님 루비 좋습니카?
루비는 관용입니다.
루비는 그 무엇도 당신에게 강요하지 않습니다.
때문에 루비스트는 자유롭습니다.
읭읭
와웅 디엠언니
블로그만 살리시지말고
게임접속도 좀 해서 살려달라능
윽.....매우 찔린다능