选项1:

来自的newWorkStealingPoolExecutors

public static ExecutorService newWorkStealingPool()

使用所有可用处理器作为目标并行度级别,创建工作窃取线程池。

使用此API,您无需将内核数传递给ExecutorService。

通过grepcode实现此API

/**

* Creates a work-stealing thread pool using all

* {@link Runtime#availableProcessors available processors}

* as its target parallelism level.

* @return the newly created thread pool

* @see #newWorkStealingPool(int)

* @since 1.8

*/

public static ExecutorService newWorkStealingPool() {

return new ForkJoinPool

(Runtime.getRuntime().availableProcessors(),

ForkJoinPool.defaultForkJoinWorkerThreadFactory,

null, true);

}

选项2:

来自Executors或的newFixedThreadPool API other newXXX constructors,返回ExecutorService

public static ExecutorService newFixedThreadPool(int nThreads)

将nThreads替换为 Runtime.getRuntime().availableProcessors()

选项3:

线程池执行器

public ThreadPoolExecutor(int corePoolSize,

int maximumPoolSize,

long keepAliveTime,

TimeUnit unit,

BlockingQueue workQueue)

Runtime.getRuntime().availableProcessors()作为参数传递给maximumPoolSize。

java 内核线程_Java:如何根据cpu内核扩展线程?相关推荐

  1. java 多线程 进程_Java多线程1:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...

  2. java 1000个线程_java,一个程序建立1000个线程,每一个线程加1到一个变量sum。

    1.程序建立1000个线程,有可能造成系统创建大量线程而导致消耗完系统内存,还会增加创建和销毁线程上所花的时间以及系统资源的开销 2.在创建线程数多的情况下,可以考虑使用线程池 以下是Java自带的几 ...

  3. java怎么看具体被挂起的线程_Java知多少(65)线程的挂起、恢复和终止

    有时,线程的挂起是很有用的.例如,一个独立的线程可以用来显示当日的时间.如果用户不希望用时钟,线程被挂起.在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事. 挂起,终止和恢复线 ...

  4. 查看linux线程个数,linux查看cpu个数,线程数及cpu型号

    1.查看CPU逻辑id grep 'physical id' /proc/cpuinfo | sort -u physical id : 0 physical id: 1 2.查看物理CPU个数 $ ...

  5. Java中的“可运行的实现”与“扩展线程”

    从什么时候开始在Java中使用线程开始,我发现了以下两种编写线程的方法: 与implements Runnable : public class MyRunnable implements Runna ...

  6. terminated 线程_Java【多线程系列】JUC线程池—2. 原理(二)、Callable和Future

    在"Java多线程系列--"基础篇"01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态.线程池也有5种状态:然而 ...

  7. java 条件 等待_java – 如何唤醒等待相同条件的所有线程?

    我有以下情况.几个线程正在等待相同的条件.当得到通知时,所有应该停止等待,更改标志并返回对象: public Object getObject(){ lock.lock(); try { while ...

  8. java dump 线程_Java 中怎么获取一份线程 dump 文件

    展开全部 当服务器挂起,崩溃或者性能底下时,就需要抓取服务器的线程堆636f707962616964757a686964616f31333363363533栈(Thread Dump)用于后续的分析. ...

  9. linux查看java堆栈信息_Java运行状态分析2:获取线程堆栈信息

    Java运行状态分析2:获取线程堆栈信息 基本概念 出现内存泄漏或者运行缓慢场景,有时候无法直接从业务日志看出问题时候,需要分析jvm内存和线程堆栈 线程堆栈信息主要记录jvm线程在某时刻线程执行情况 ...

  10. java学习(94):cpu随机调用线程测试

    //创建线程 class Xc3 extends Thread {public void run(){System.out.println("当前线程的名称为"+Thread.cu ...

最新文章

  1. Oracle database 11g 安装 - 配置企业管理器database control失败
  2. asp.core api 通过socket和服务器通信发送udp_【网络通信】TCP的通信过程
  3. Oracle入门(七B)之表空间删除数据文件未删除
  4. Java EE6事件:JMS的轻量级替代品
  5. 权限丢失_不要让任何“账户权限”问题困扰你!
  6. 前驱和后驱什么意思_为什么只有豪车才敢用后驱
  7. Docker容器网络解析
  8. 软件测试基础课程学习笔记1--软件测试简介
  9. java二叉树递归算法_Java二叉树的四种遍历(递归和非递归)
  10. C语言程序100例之C#版-029
  11. 【C++ Builder 11】选择文件夹的三种方式
  12. 100个Python实战项目(七)实现摩斯密码翻译器
  13. 十年互联网,十个风云人物——历史会记住他们!
  14. 学习笔记 | 零基础平面设计入门
  15. 在网上请不要惹一个程序员
  16. RxJavaAndroid学习笔记
  17. 三维空间里一个点绕矢量旋转后的新的点的坐标
  18. 小猫爪:S32K3学习笔记21-S32K3之SAF及其应用
  19. 虫师Selenium2+Python_4、webdriver API
  20. 100集华为HCIE安全培训视频教材整理 | 准入控制功能实现(七)

热门文章

  1. 路由算法与路由协议概述
  2. AMNO.6 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字
  3. 深度学习模型压缩与加速综述
  4. 图像处理分类、一般流程与算法
  5. java项目的逻辑结构
  6. 在为时已晚前 阻止物联网安全威胁和攻击
  7. Redis漏洞?阿里云被攻击!
  8. KeyWordHelper-关键字提取类(注:使用第三方组件DictSeg.dll)
  9. 《一个操作系统的实现》读书笔记连载ing……
  10. C#_asp.net页面转向