在C/C++中,當我們創建一個線程時,有一種機制可以將一些參數傳遞給線程執行體。在java中,我們可以繼承Thread
類以允許線程類包含一些實例變量。在Ruby中,創建一個線程的方法是:如何在Ruby中創建線程的子類?
Thread.new
thread = Thread.new {
... code thread execution body
}
後,線程開始立即運行。我看到的所有代碼都在線程體中使用全局變量。假設我們需要一個互斥鎖,代碼:
mutex = Mutex.new
thread = Thread.new {
... code thread execution body
mutex.synchronized {
... some code
}
}
是否有可能創造Thread
一個子類,並允許它有一些實例變量?我無法弄清楚的技術問題是如何將代碼塊傳遞給子類以及子類如何將代碼塊傳遞給超類Thread
類。
可能重複[如何將監控對象傳遞給在Ruby中兩個紗線對象?(http://stackoverflow.com/questions/18435630/how-to-pass-an-monitor-object-to -two-thread-objects-in-ruby)由同一個用戶 –