2

同じスレッド内でThread.current.object_id変更できるかどうか疑問に思っています。あれは:

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

変わらないと思いますが、Thread.currentRubyの内部呼び出しによって再初期化される可能性があります...

つまり、今日ルビー ループ/デーモン/長期スクリプト (Rails アプリケーションなど) を実行した場合、Thread.current.object_id6 か月後でも同じになると期待する必要がありますか?

4

2 に答える 2

2

Thread.current が変更されると、現在実行中のスレッドが返されますが、スレッド オブジェクト ID は変更されません。

于 2012-11-27T16:59:04.167 に答える
1
puts Thread.current
#=> #<Thread:0x00000001d87fd8>
Thread.new{puts Thread.current}.join
#=> #<Thread:0x00000001f97120>

更新された質問に。はい、再起動されていない限り、スレッドは同じままです。コンピューターは、人間のように数秒と 6 か月の違いを感じません。

于 2012-11-27T17:14:51.800 に答える