java - 在 Java 中创建未知数量的线程?

标签 java multithreading

您好,对于我正在处理的程序,我需要使用可变数量的线程来完成一项任务。扩展 Thread 的类 Mythread 存储在我创建的另一个类 X 中。

应该发生的是当我调用 X 时它传递一个参数 n,它指定可以使用的最大线程数。我不确定如何创建 n 个线程,因为我在网上阅读的所有内容都表明必须像

一样显式调用线程
Thread thread1 = new Mythread();

我试过:

while (0 >= n)
  {Thread thread1 = new Mythread(); n--;}

但这没有用。关于如何去做的任何想法?抱歉,如果我的问题有点模糊,这是学校的问题,我想自己学习这些 Material ,然后发布大部分项目。如果您需要任何其他信息或需要澄清,请随时询问。

最佳答案

通常你会做的是创建一个线程数量有限的池化执行器,并使用循环或其他一些机制来传递任意数量的可调用任务:

ExecutorService exec = Executors.newFixedThreadPool(n);
for (int i = 0; i < n; ++i) {
  exec.submit(new MyCallable());
}

关于java - 在 Java 中创建未知数量的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858305/

相关文章:

java - 没有配置文件的多个 src/main/resources 文件夹(我希望一次构建多个版本)

java - 如何在java中获取我的机器的IP地址?

c++ - 我怎样才能产生一个只在给定时间内存在的进程

c++ - 我的 'show progress thread' 计数时不运行

java - 按下按钮时重复任务(从适配器)

java - modelAndView返回后执行任务

java - Maven ClassNotFoundException SpringServletContainerInitializer

java - 用 Axis2 错误 XML 响应替换 JBoss 错误页面

java - 检查用户是否存在,Java、JDBC 和 MySQL

python多处理池超时