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. Java同期ブロック
- 6. 同期とマルチスレッド
- 7. javaスレッド同期ブロック
- 8. 基本.NETスレッド - 単一のリーダーと単一のライタースレッドのオブジェクトを同期する最も効率的な方法
- 9. のJavaマルチスレッドの同期の問題
- 10. Javaのマルチスレッド同期の問題?
- 11. ブロック内のブロックの同期化?
- 12. OutOfMemoryエラー:静的メソッド内の同期ブロック
- 13. サーブレットdoPost内の同期ブロック
- 14. java:同期ブロック内のループ内のprotoオブジェクト
- 15. Clojure同期ブロック
- 16. Javaの入力ストリーム "ブロック"とマルチスレッド
- 17. C++マルチスレッド同期
- 18. 休止マルチスレッドと同期
- 19. マルチスレッドの正確さ:同期ブロックの使用
- 20. JAVAのマルチスレッドでの同期とオブジェクトのロック
- 21. 同期ブロックとdispatch_async
- 22. Javaでの同期ブロックの簡略化
- 23. java - 同期ブロック内での並べ替え
- 24. 分度器の 'it'ブロック内の同期
- 25. 同期メソッドとJavaの同期ブロックの違いは何ですか?
- 26. 同期ブロック/メソッドとスケジューリングルールをJava同時実行で
- 27. シンプルなマルチスレッドのヘルプ? C++、WaitForSingleObjectと同期
- 28. マルチスレッド - Unixでの同期
- 29. Java:ネストされた同期ブロック
- 30. 同期ブロック内の予期しないコード
'にThread.currentThread()は'常にThread'のinstanceof 'ものを返すかどうかを確認します。しかし、 'extends Thread'は通常はコードの匂いであるため、現在のThreadオブジェクトの_type_を見るだけでは、コードが悪臭を感じないかどうかは分かりません。 GhostCatのように、オブジェクトの_identity_を使用する方がよいでしょう。何よりも、誰がそれを呼んでいるかに応じて、異なることをするコードを書かない方が良いでしょう。 –