2017-07-28 6 views

答えて

0

はい、スレッドセーフです。 JDK8での完全な実装は次のとおりです。

public long getId() { 
    return tid; 
} 

tidThreadオブジェクトの構築時に一度初期化され、その後変更されることはありません。

コードに問題を解決して解決できない場合は、にはの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の値はスレッドセーフであることを不変にします

+0

だから最初にあなたは答えていない、そしてそれを削除し、あなたがあなたの答えをyesに変更してそれを取り消すと、 –

+0

はい、私の答えがほしいと思うほど多くを訂正することができる人間として...コメントのためにありがとう:) –

+0

あなたがデュー・ディリジェンス**を**投稿する前よりもむしろ良ければそれは良いでしょう。 –

関連する問題