0
A
答えて
2
:
Thread current = Thread.currentThread()
そして今を。スレッドのマップ/リスト/ ...がある場合は、単純に参照を比較できます。簡単な例:
あなたのクラスには2つのフィールドを追加します。
private Thread reader =
private Thread writer =
をそしてあなたは
synchronized foo() {
if (Thread.currentThread() == reader) ...
とレコードの操作を行うことができます:物事は簡単に、人が扱っていることを見たが "この問題はむしろ後退しなければならない:これはXY problem のすべての場所のにおいをする。
意味:「実際の」世界では、私はこのようなコードをにすると悪い習慣と考えています。おそらく、それは他の方法で解決すべき問題を解決しようとします!
したがって、インタビュアーへの回答は、技術的な直接的な回答の組み合わせがよいでしょう。その "悪い練習"問題を指摘している。
0
現在のスレッドがinstanceofのリーダーであるかライター
関連する問題
- 1. Javaマルチスレッド同期ブロック
- 2. Java同期ブロック
- 3. Javaマルチスレッド同期の確認?
- 4. Javaマルチスレッド。スレッドクラスの同期(this)
- 5. 同期とマルチスレッド
- 6. 基本.NETスレッド - 単一のリーダーと単一のライタースレッドのオブジェクトを同期する最も効率的な方法
- 7. のJavaマルチスレッドの同期の問題
- 8. Javaのマルチスレッド同期の問題?
- 9. ブロック内のブロックの同期化?
- 10. java:同期ブロック内のループ内のprotoオブジェクト
- 11. C++マルチスレッド同期
- 12. 休止マルチスレッドと同期
- 13. Javaの入力ストリーム "ブロック"とマルチスレッド
- 14. マルチスレッドの正確さ:同期ブロックの使用
- 15. JAVAのマルチスレッドでの同期とオブジェクトのロック
- 16. 同期ブロックとdispatch_async
- 17. java - 同期ブロック内での並べ替え
- 18. Javaでの同期ブロックの簡略化
- 19. 分度器の 'it'ブロック内の同期
- 20. 同期メソッドとJavaの同期ブロックの違いは何ですか?
- 21. シンプルなマルチスレッドのヘルプ? C++、WaitForSingleObjectと同期
- 22. マルチスレッド - Unixでの同期
- 23. Java:ネストされた同期ブロック
- 24. 同期ブロック内の予期しないコード
- 25. 同期ブロックandroid
- 26. 非同期ブロック
- 27. Javaの同じメソッドのマルチスレッド
- 28. ブーストAsioマルチスレッドTCP同期サーバー
- 29. Javaのスレッドとマルチスレッド
- 30. pthread_mutex_t VS @同期ブロック?
'にThread.currentThread()は'常にThread'のinstanceof 'ものを返すかどうかを確認します。しかし、 'extends Thread'は通常はコードの匂いであるため、現在のThreadオブジェクトの_type_を見るだけでは、コードが悪臭を感じないかどうかは分かりません。 GhostCatのように、オブジェクトの_identity_を使用する方がよいでしょう。何よりも、誰がそれを呼んでいるかに応じて、異なることをするコードを書かない方が良いでしょう。 –