java中queue的用法 java多線程為什么不推薦使用excutor執(zhí)行?
java多線程為什么不推薦使用excutor執(zhí)行?Java中BlockingQueue有兩種主要實(shí)現(xiàn):arrayblockingqueue和linkedblockingqueue。Arrayblock
java多線程為什么不推薦使用excutor執(zhí)行?
Java中BlockingQueue有兩種主要實(shí)現(xiàn):arrayblockingqueue和linkedblockingqueue。Arrayblockingqueue是由array實(shí)現(xiàn)的有界阻塞隊(duì)列,必須設(shè)置其容量。linkedblockingqueue是由鏈表實(shí)現(xiàn)的有界阻塞隊(duì)列。容量可選擇性設(shè)置。如果不設(shè)置,它將是一個(gè)無(wú)限長(zhǎng)的阻塞隊(duì)列,最大長(zhǎng)度為Integer.MAX[value.
查看new singleexecutor的源代碼,您可以發(fā)現(xiàn)在創(chuàng)建linkedblockingqueue時(shí)沒(méi)有指定容量。此時(shí),linkedblockingqueue是一個(gè)無(wú)邊界隊(duì)列。對(duì)于無(wú)邊界隊(duì)列,任務(wù)可以連續(xù)添加到隊(duì)列中。在這種情況下,由于任務(wù)太多,可能會(huì)發(fā)生內(nèi)存溢出。
Java語(yǔ)言有什么優(yōu)勢(shì)?
一種語(yǔ)言的優(yōu)勢(shì)在于它與其他語(yǔ)言的比較。
Java:可以寫(xiě)桌面,可以寫(xiě)Android,可以寫(xiě)服務(wù)器,可以寫(xiě)企業(yè)業(yè)務(wù),可以寫(xiě)互聯(lián)網(wǎng)業(yè)務(wù),基本不注重內(nèi)存,基本不注重操作系統(tǒng),封裝NiO,線程,鎖,隊(duì)列。。。。。。它基本上是開(kāi)箱即用的,新手可以Google,從堆棧溢出復(fù)制就可以完成任務(wù)(雖然可能不太棒)
如果你想學(xué)習(xí)Java,可以關(guān)注私人聊天,我發(fā)“Java”來(lái)獲取介紹視頻。