2012-11-27 110 views
1

我想知道Thread.current.object_id可以在裏面改變;那就是:`Thread.current.object_id`可以在線程本身內部改變嗎?

Thread.current.object_id #=> 11429860 
# some ruby code 
Thread.current.object_id #=> 11749360 different from the previous result 

我想這並沒有改變,但也許Thread.current可以通過一些內部Ruby調用重新初始化...

我的意思是,如果我運行一個紅寶石環路/守護/長期腳本(例如Rails應用程序)今天,我預計Thread.current.object_id即使在6個月後也是如此?

+0

這是一個很好的問題。我自己想過這個。 –

回答

2

Thread.current可以改變導致它返回當前正在執行的線程,線程對象id不會。

+0

我不清楚,我的意思是如果它可以改變*在同一個線程內*;我更新了 – mdesantis

+0

這個問題,它不會改變 – Andreas

1
puts Thread.current 
#=> #<Thread:0x00000001d87fd8> 
Thread.new{puts Thread.current}.join 
#=> #<Thread:0x00000001f97120> 

到您更新的問題。是的,只要沒有重新啓動,線程就保持不變。計算機不會像你一樣感受到幾秒鐘和六個月之間的差異。

+0

我不清楚,我的意思是如果它可以在同一個線程內*改變;我更新了問題 – mdesantis

+0

電腦不要,也許解釋器......? – mdesantis

+0

計算機,解釋器,以及操作系統,以及運行該程序所需的其他東西。 – sawa

相關問題