繁体   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