用于多个相同任务的 Java 线程池

标签 java multithreading threadpool

我有 1 个线程,其唯一的工作就是从套接字中获取 DatagramPackets 并将它们粘贴到缓冲区中。另一个线程在该缓冲区之外工作,处理数据报包。我希望有一个线程池在该缓冲区中工作。

我曾想过使用固定线程池来做到这一点。为此,我是否需要创建池,然后提交足够的可运行对象来执行以填充池?我希望有一种方式可以说“这是我希望你执行的线程/可运行程序,这是我想要运行的线程/可运行程序,开始!”。有这样的方法吗?除了固定线程池之外还有其他更适合的吗?

最佳答案

Executors.newFixedThreadPool 创建的固定线程池会工作得很好。

实现的内部语义是线程池将优先创建新线程,直到它达到其首选大小(核心池大小),这似乎就是您想要的。

关于用于多个相同任务的 Java 线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12222717/

相关文章:

java - 单击 TextView 时我的应用程序崩溃

java - 使用 Java 使用 RESTful API

java - 传递函数调用方法参数 java

用 C 语言为 IRC 机器人创建一个基本 shell,并在后台运行另一个线程

c# - 检测到 ThreadPool WorkItem 已完成/等待完成

java - 停止 ScheduledThreadPoolExecutor 的最佳方法

java - Maven 更新项目后项目结构发生了变化,源文件夹的包含和排除模式也发生了变化

c++ - 不断变化的工作负载是否待定?

无法使用 pthread_exit 终止线程

java - 池大小实际上如何与 Spring 的计划任务一起工作?