簡體   English   中英

ConcurrentLinkedQueue與多線程一起使用

[英]ConcurrentLinkedQueue usage with multithreading

作為我項目的一部分,我需要創建一個包含固定線程數的線程池。每當線程分配給不同的進程時,我也需要與線程一起分配那么多會話。我想使用ConcurrentLinkedQueue(大小)以存儲會話,以便在線程完成后將會話放回Queue中,以供其他進程使用。希望我的要求已明確...任何人都可以給我一些魁德從如何實現開始..?如何使用ConcurrentLinkedQueue ..?

我假設您想做與

Executors.newFixedThreadPool(n);

還不清楚為什么您不只是使用此線程池。

您似乎還想使用隊列作為對象池。 您可以使用add()poll()來查看空閑元素是否可用。

每當線程分配給不同的進程時...

使用ConcurrentLinkedQueue,您將無法在不同進程中的線程之間共享資源。 它只能從一個進程的線程訪問。

如果這不是問題,則可以使用線程池

Executors.newFixedThreadPool(int nThreads, ThreadFactory threadFactory) 

ThreadFactory可以使用ThreadLocal將Session資源與線程池管理的線程相關聯。 您可以配置不同的初始化策略。 不要忘記在線程池關閉時清理會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM