[英]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.