隨着的Ruby 1.8.7我試圖擴展這裏Thread類的片斷擴展Thread類
class Foo < Thread
attr_accessor :bar
end
t = Foo.new do
puts "Foo thread begins"
self.bar = "Bar value" # also tried @bar
sleep(2)
puts "Foo thread ends"
end
puts "Value: #{t.bar}"
sleep(10)
puts "Value: #{t.bar}"
輸出是
>Foo thread begins
>Value:
>Foo thread ends
>Value:
爲什麼我不能看到:bar
屬性爲Foo
類?由於這可能不是以這種方式工作的,我如何將新創建的Thread
的值傳遞給main
線程?
謝謝
我該如何訪問它然後,我該如何設置我的線程的'bar'變量? –
非常感謝您,這可能不是編寫線程安全程序但仍在學習的最佳方式。再次感謝。 –
我非常確定'3)'不會工作(至少它不符合1.8.7),因爲foo在線程正文執行時未被評估。所以你在那裏得到'nil',當試圖設置屬性時會引發異常。 –