java Executors 執行緒池

2021-06-05 02:45:31 字數 1217 閱讀 5134

執行緒池的思想就相當於物件池一樣,它也是開闢了一塊記憶體空間,裡面存放那些(未死亡的)執行緒,該池中的執行緒執行排程由池管理器來處理,當從池中取出乙個、執行完之後又回歸池中。這樣的好處就可以避免反覆的建立執行緒物件所帶來的效能開銷,從而節省了系統的資源。

專案中用到兩處執行緒池的內容,

1,executors.newsinglethreadexecutor()  單任務執行緒,結合專案中的意思就是乙個」路線「例項物件建立後就執行這個執行緒,達到不斷(下面是1000)往車集合(vechicles)裡新增車輛。

executorservice pool = executors.newsinglethreadexecutor();  

pool.execute(new runnable() catch (interruptedexception e)

vechicles.add(road.this.name + "_" + i); //內部類訪問外部類的變數,需要用類.this.變數

}

}});

2,executors.newscheduledthreadpool(1);    延遲連線池,可以說是乙個定時器,就是規定它隔個多少時間就執行一次,該引數(1)是表示池中所儲存的執行緒數為1,方法引數解釋timer.scheduleatfixedrate(執行緒、開始時間、定時間隔時間、時間型別),結合專案中的意思就是如果車集合不為空,則每過一秒鐘就把該集合的第乙個元素刪除,也就是說逐步把該路線上的車一輛一輛減少。

scheduledexecutorservice timer =  executors.newscheduledthreadpool(1);  

timer.scheduleatfixedrate(

new runnable()

} }

},

1,

1,

timeunit.seconds);

專案總結:其實該專案就是3塊,一、是路線的類:首先隨機不斷的往路線車輛集合裡新增車輛,然後每隔一秒判斷是否為綠燈,是則把這個集合的第乙個元素刪除,不為綠燈就不變。二、燈的類,是乙個列舉類,固定12個常量,也就是12個列舉類的例項物件,它們的有3個引數,(當前燈是否為綠、與當前燈同時為綠的對應方向、當前燈變紅時下乙個變綠的燈)。三、就是交通燈的管理,就是讓乙個方向的燈由綠變紅,那它下乙個方向的燈就變紅,這樣迴圈著。

執行緒!執行緒!!執行緒!!! Delphi版

以下內容僅供初學者參考 看到有的同學對delphi的執行緒認識不夠深,特開一貼給同學們講講。主要給出兩種常用的執行緒形式。1 長等待型執行緒示例,等待命令,執行不定長的工作,但每個工作的時間不會太長。2 長工作型執行緒示例,執行乙個很長時間的工作,但可以很快響應取消操作。以下程式所用的知識為 訊息機...

執行緒 執行緒控制代碼 執行緒ID

什麼是控制代碼 控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以...

執行緒 執行緒控制代碼 執行緒ID

什麼是控制代碼 控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以...