java復用
發布時間: 2024-03-12 13:40:02
A. java 線程池是怎麼復用線程的
線程重用的核心是,它把Thread.start()給屏蔽起來了(一定不要重復調配攜用),然後它自己有友賣滾一個Runnable.run(),循環在跑,跑的過程中不斷檢查我們是否有新加入的子Runnable對象,有就調一下我們的run(),其實就好餘一個大run()把其它小run()#1,run()#2,...給串聯起來了,基本原理就這么簡單。
JDK代碼節選
/**
* Main run loop
*/
public void run() {
try {
Runnable task = firstTask;
firstTask = null;
while (task != null || (task = getTask()) != null) {
runTask(task);//這里最終會調用task.run()
task = null;
}
} finally {
workerDone(this);
}
}
}
熱點內容