java计算开启多少线程为益

首先查看机器配置 linux下
1.查看CPU个数

cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l

2.查看每个物理CPU含有的核心个数

cat /proc/cpuinfo |grep "cpu cores"|uniq|wc -l

3.查看每个CPU核心含有的线程数

cat /proc/cpuinfo |grep "processor"|wc -l
  1. 那么cpu支持的线程数为 cpu数目 * 每个cpu含有的核心数目* 每个核心含有的线程数

5.查看内存 -g 显示单位G -m 单位M

free -g

对于CPU密集型计算任务,线程数 = CPU核心数 + 1

对于I/O密集型计算任务,线程数 = 2 * CPU核心数

对于普通任务,线程数 = N(CPU核心数) * (1 + WT(线程等待时间) /  ST(线程时间运行时间))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个示例代码,演示如何在Java中创建并启动三个线程来遍历一个集合: ```java import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); int numThreads = 3; int chunkSize = numbers.size() / numThreads; for (int i = 0; i < numThreads; i++) { int start = i * chunkSize; int end = (i == numThreads - 1) ? numbers.size() : (i + 1) * chunkSize; List<Integer> subList = numbers.subList(start, end); Thread thread = new Thread(() -> { for (Integer number : subList) { System.out.println("Thread " + Thread.currentThread().getId() + ": " + number); } }); thread.start(); } } } ``` 这段代码首先创建了一个包含数字的列表 `numbers`,然后定义了要启动的线程数量 `numThreads`,并计算出每个线程应该处理的元素数量 `chunkSize`。 接下来,通过一个循环来创建并启动每个线程。在循环中,我们根据当前线程的索引计算出要处理的子列表的起始和结束位置,并使用 `subList` 方法获取对应的子列表。 然后,我们创建一个新的线程,并使用Lambda表达式定义线程的执行代码。在这个示例中,线程实际上只是简单地遍历子列表,并打印每个元素。 最后,我们调用 `start` 方法启动线程,使其开始执行。每个线程将独立地遍历其分配的子列表,并在控制台上打印结果。 请注意,由于多线程执行的无序性,打印输出的顺序可能不会按照列表中元素的顺序显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值