java - 是否可以在java中自动创建线程?取决于标准
问题描述
import java.util.*;
public class test{
public test(){
int[] list = new int[]{1,2,3,4,5,6};
ArrayList<Integer> myList = new Arrays.asList(list);
//list with 6 numbers that require 3 threads
}
public static void main(String[] args){
new test();
}
}
对于我列表中的每两个数字,我想要一个线程。即,如果它们是 6 个数字,则应自动检测 3 个线程。我必须怎么做才能自动创建线程?
解决方案
是的。普遍接受的方法是生成一个 Runnable 并将该 Runnable 提交给 ExecutorService 来为您管理线程。不要只执行松散的线程。这是一个糟糕的习惯,它使您无法控制线程。
ExecutorService service = Executors.newFixedThreadPool(5);
for (blah blahblah) {
Runnable runnable = new Runnable() {
....
}
service.execute(runnable);
}
只要确保当您完成执行程序(或程序终止时)时,您执行
service.shutdown();
或者
service.shutdownNow();
推荐阅读
- wso2 - 如何在旧版本的 Carbon 中在 HTTP 上运行 Wso2 Carbon 管理控制台?
- html - 如何水平对齐溢出的文本?
- mysql - 如何创建简单的 REST API 登录?
- excel - Excel公式查找重复值的最小值
- android - 自调用时的Android导航组件Backstack
- javascript - Kendo UI 中的验证 numericTextBox
- php - PHP 7.4 中的循环引用
- javascript - 在 Chrome 扩展中使用 NOTY JS 通知库
- python - GCP Pub/Sub Push Endpoint 在请求参数中找不到谷歌域验证令牌
- driver - 在 Ubuntu 18.04 和英特尔 XL710 上安装 DPDK