我有 1 个线程,其唯一的工作就是从套接字中获取 DatagramPackets 并将它们粘贴到缓冲区中。另一个线程在该缓冲区之外工作,处理数据报包。我希望有一个线程池在该缓冲区中工作。
我曾想过使用固定线程池来做到这一点。为此,我是否需要创建池,然后提交足够的可运行对象来执行以填充池?我希望有一种方式可以说“这是我希望你执行的线程/可运行程序,这是我想要运行的线程/可运行程序,开始!”。有这样的方法吗?除了固定线程池之外还有其他更适合的吗?
最佳答案
由 Executors.newFixedThreadPool 创建的固定线程池会工作得很好。
实现的内部语义是线程池将优先创建新线程,直到它达到其首选大小(核心池大小),这似乎就是您想要的。
关于用于多个相同任务的 Java 线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12222717/