質問タイトルが言うように、Thread.getId()
はスレッドセーフですか?私は最近マルチスレッド中に問題を抱えていました。その解決策は、スレッドがハングしているので、getId()
呼び出しを取り除くことでした。JavaスレッドgetId()はスレッドセーフですか?
0
A
答えて
0
はい、スレッドセーフです。 JDK8での完全な実装は次のとおりです。
public long getId() {
return tid;
}
tid
はThread
オブジェクトの構築時に一度初期化され、その後変更されることはありません。
コードに問題を解決して解決できない場合は、にはのIDを取得していれば、そのIDを取得していたことになります。
0
短い答え:はい、
長い答え:あなたはメソッドが同期されていない、とtid
はプライベートと宣言し、最終的ではありません、見るように競合状態に対して
/**
* Returns the identifier of this Thread. The thread ID is a positive
* <tt>long</tt> number generated when this thread was created.
* The thread ID is unique and remains unchanged during its lifetime.
* When a thread is terminated, this thread ID may be reused.
*
* @return this thread's ID.
* @since 1.5
*/
public long getId() {
return tid;
}
を保護する安全な手段をスレッドtid
はプライベートメソッドinit
に設定されており、それ以降は決して変更されません。tid
の値はスレッドセーフであることを不変にします
関連する問題
- 1. javaスレッドセーフ:スレッドセーフですか?
- 2. DocumentBuilderFactoryはJava 5+でスレッドセーフですか?
- 3. 別のスレッドからスレッドで非スレッドセーフなメソッドを呼び出す
- 4. Javaのprotobufはスレッドセーフですか?
- 5. スレッドをLD_PRELOADとスレッドセーフで注入する
- 6. Java StringBuilderとスレッドセーフ
- 7. スレッドセーフなスレッドと非スレッドセーフなカウンタの実装
- 8. 非オブジェクトのgetID()
- 9. request.getSession()。getId()vs request.getRequestedSessionId()
- 10. どのようにStringクラスはJavaでスレッドセーフですか?
- 11. JavaのexecuteUpdateメソッドはスレッドセーフなものですか?私のアプリケーションで
- 12. スレッドセーフなJavaのシングルトン
- 13. java配列のスレッドセーフ
- 14. strcmpではスレッドセーフですか?
- 15. はPythonスレッドセーフで+ =ですか?
- 16. Oracle Java KeyStoreの実装はスレッドセーフですか?
- 17. 静的メソッドのJava配列はスレッドセーフですか?
- 18. JavaネストされたConcurrentHashMapはスレッドセーフですか?
- 19. Java:メソッドのスレッドは安全ですか?
- 20. DocumentBuilder.parse()はスレッドセーフですか?
- 21. ステートレスセッションはスレッドセーフですか?
- 22. ValueExpressionはスレッドセーフですか?
- 23. putStrLnはスレッドセーフですか?
- 24. SignalRはHub.Contextスレッドセーフですか?
- 25. boost :: threadはスレッドセーフですか?
- 26. CloudSolrClientはスレッドセーフですか?
- 27. コードはスレッドセーフですか?
- 28. 式ツリーはスレッドセーフですか?
- 29. concurrentMap.keySet()。toArray()はスレッドセーフですか?
- 30. はjava.util.UUIDスレッドセーフですか?
だから最初にあなたは答えていない、そしてそれを削除し、あなたがあなたの答えをyesに変更してそれを取り消すと、 –
はい、私の答えがほしいと思うほど多くを訂正することができる人間として...コメントのためにありがとう:) –
あなたがデュー・ディリジェンス**を**投稿する前よりもむしろ良ければそれは良いでしょう。 –