在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 如何理解java線程池中的線程復(fù)用?

如何理解java線程池中的線程復(fù)用?

ExecutorService pool = new ThreadPoolExecutor(5, 200,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());

怎么理解線程池中線程的復(fù)用?

回答
編輯回答
入她眼

簡(jiǎn)單的說(shuō),線程池就是一組工人,任務(wù)是放在隊(duì)列Queue里,一共就這么幾個(gè)工人,當(dāng)有空閑的工人,就會(huì)去隊(duì)列里領(lǐng)取下一個(gè)任務(wù),所以通過(guò)這種手段限制的總工人(線程)數(shù)量,即為復(fù)用。

2018年6月23日 02:05
編輯回答
半心人

線程創(chuàng)建好了之后自旋的從阻塞隊(duì)列中獲取任務(wù),獲取到任務(wù)就去執(zhí)行。

while(canceled) {
    Runnable task = queue.take();
    task.run();
}

queue.take()是阻塞方法,當(dāng)任務(wù)隊(duì)列為空時(shí)就會(huì)阻塞,網(wǎng)阻塞隊(duì)列中丟任務(wù)時(shí),該方法會(huì)被喚醒。

2017年6月9日 07:58