簡體   English   中英

Java多線程-同步塊中的讀取器和寫入器線程

[英]Java multithreading - reader and writer thread in synchronized block

這是求職面試的一個問題:

如何識別同步塊中的讀取線程和寫入線程?

您可以隨時執行以下操作:

Thread current = Thread.currentThread()

現在; 當您具有線程的映射/列表/ ...時,可以簡單地比較引用。 簡單的例子:

您將兩個字段添加到您的班級:

private Thread reader = 
private Thread writer = 

然后你可以做

synchronized foo() {
  if (Thread.currentThread() == reader) ...

記錄:盡管看起來很簡單,但是處理“這個問題”的人應該退后一步:這遍地都是XY問題

含義:在“真實”世界中; 我認為這樣的代碼是不好的做法 它最有可能嘗試解決應以其他方式解決的問題!

因此,面試官的答案最好是直接技術答案的結合; 但指出了“不良做法”問題。

您可以檢查當前線程是instanceOf Reader還是Writer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM