這兩天在知乎上看到不同的人都問了這個問題,回想起當年找實習的時候也寫過這個問題,覺得還蠻有意思的,就在這裡記錄一下。
最常見的是使用notify() wait()
public
class
demo
private
static
class
printer
extends
thread
@override
public
void
run(
)catch
(interruptedexception e)}}
}}}
不使用鎖
public
class
demo
private
static
class
printera
extends
thread
@override
public
void
run()}
}}private
static
class
printerb
extends
thread
@override
public
void
run()}
}}}
使用reentrantlock
public
class
demo
private
static
class
printer
extends
thread
@override
public
void
run(
)catch
(interruptedexception e)
finally}}
}}
還可以使用其他juc包裡的同步類semaphore等等。 多執行緒面試題
題目 主線程執行10次,子執行緒執行10次,此過程重複50次 package com.thread.test function 主線程執行10次,子執行緒執行10次,此過程重複50次 public class threadproblem start for int j 0 j 50 j class ...
面試題 多執行緒
現有程式同時啟動了4個執行緒去呼叫testdo.dosome key,value 方法,由於testdo.dosome key,value 方法內的 是先暫停1秒,然後再輸出以秒為單位的當前時間值,所以,會列印出4個相同的時間值,如下所示 4 4 1258199615 1 1 1258199615 ...
多執行緒面試題
執行緒池的優點?執行緒是稀缺資源,使用執行緒池可以減少建立和銷毀執行緒的次數,每個工作執行緒都可以重複使用。執行緒池為執行緒生命週期開銷問題和資源不足問題提供了解決方案。可以根據系統的承受能力,調整執行緒池中工作執行緒的數量,防止因為消耗過多記憶體導致伺服器崩潰。public threadpoole...