0
이 코드가 작동하지 않는 이유를 이해할 수 없습니다. 내가하려는 것은 광섬유를 사용하여 동기 코드 동작을 에뮬레이션하는 것입니다. 이 코드를 실행하면비동기 메서드에서 파이버 재시작
require 'fiber'
require 'eventmachine'
def async_request(url)
f = Fiber.current
Thread.new do
sleep 0.3
puts 'Resuming Fiber'
f.resume('page fetched #{url}')
end
end
def async_get(url)
async_request url
val = Fiber.yield
return val
end
EM.run do
Fiber.new do
puts 'Fiber Started'
page = async_get('http://www.whatever.com')
puts page
end.resume
end
, 출력은 다음과 같습니다
$ ruby fiber_poc.rb
Fiber Started
Resuming Fiber
파이버는 재개되지 않습니다. 어떻게 할 수 있습니까?
고마워
감사를 받게됩니다. 멋지다. 왜 스레드를 사용할 수 없습니까? 어쨌든 고마워! – CHAPa
스레드간에 섬유를 사용할 수 없습니다. – fl00r