"결코 블로킹"으로 무언가를하려하고 있습니다. 제대로 작동하지 않는 것 같습니다.
내가 기대하는 것 : 블로킹 수면이 전체 프로세스를 늦추지 않아야합니다. 나는 기본적으로 같은 타임 스탬프로 "bla"를 5 번 볼 것으로 예상했다.단순한 블로킹 예제가 작동하지 않습니다.
루비 :
$ ruby --version
ruby 1.9.2dev (2010-03-31 trunk 27123) [x86_64-darwin10.2.0]
코드 :
require "neverblock"
fiber_pool = NeverBlock::Pool::FiberPool.new(25)
5.times do
fiber_pool.spawn do
puts "bla @ #{Time.now}"
sleep 1
end
end
결과 :
당신이 당신의 시간을 "동결"할 필요가$ ruby test.rb
Using Neverblock
bla @ 2010-04-07 11:00:28 -0400
bla @ 2010-04-07 11:00:29 -0400
bla @ 2010-04-07 11:00:30 -0400
bla @ 2010-04-07 11:00:31 -0400
bla @ 2010-04-07 11:00:32 -0400
그 아이디어는 ... 언제 섬유가 실제로 실행되는지 확인하고 싶습니다. 내가 이해하는 바와 같이, 그들은 기본적으로 병렬로 (비 블로킹) 수행 되어야만한다. –
나는 neverblock으로 몇 가지 테스트를 시도했지만 결과는 없다. ruby 1.8.6 – fl00r