博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CPU线程 和 Java线程
阅读量:6860 次
发布时间:2019-06-26

本文共 1224 字,大约阅读时间需要 4 分钟。

一 cpu个数、核数、线程数的关系

cpu个数:是指物理上,也及硬件上的核心数;

核数:是逻辑上的,简单理解为逻辑上模拟出的核心数;一个CPU核心数模拟出2线程的CPU

线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数 * 核数,及程数=cpu个数(2) * 核数(2)=4

Windows: wmic  然后 物理CPU数 “cpu get NumberOfCores”, CPU核心数 “cpu get NumberOfLogicalProcessors” 

Linux: 

查看CPU个数  cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看核数         cat /proc/cpuinfo| grep "cpu cores"| uniq

 

 

二 cpu线程数和Java多线程

 

(1) 线程是CPU级别的,单个线程同时只能在单个cpu线程中执行

 

(2) Java多线程并不是由于cpu线程数为多个才称为多线程,当Java线程数大于cpu线程数,操作系统使用时间片机制,采用线程调度算法,频繁的进行线程切换。

 

(3) 线程是操作系统最小的调度单位,进程是资源(比如:内存)分配的最小单位

 

(4)Java中的所有线程在JVM进程中,CPU调度的是进程中的线程

 

线程的调度是指按照特定的机制为多个线程分配CPU的使用权。有两种调度模型:分时调度模型和抢占式调度模型

  • 分时调度模型是指让所有线程轮流获得CPU的使用权,并且平均分配每个线程占用CPU的时间片。
  • Java虚拟机采用抢占式调度模型,是指优先让可运行池中处于就绪态的线程中优先级高的占用CPU,如果可运行池中线程的优先级相同,那么就随机选择一个线程,使其占用CPU,处于运行状态的线程会一直执行,直至它不得不放弃CPU,一个线程会因为以下原因放弃CPU:
    • (1)Java虚拟机让当前线程暂时放弃CPU,转到就绪态,使其他线程获得运行机会
    • (2)当前线程因为某些原因而处于阻塞状态
    • (3)线程运行结束

 

Java线程让步:

3. Thread.yield()方法

就是说当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行,注意是让自己或者其他线程运行(根据CPU的调度),并不是单纯的让给其他线程。

 

4.等待其他线程结束:join()

当前运行的线程可以调用另一个线程的join()方法,当前运行的线程将转到阻塞状态,直至另一个线程运行结束,它才会恢复运行(阻塞恢复到就绪)

 

 

参考 

https://blog.csdn.net/qq_35529801/article/details/78699867

https://www.cnblogs.com/timxgb/p/9507316.html

 

转载于:https://www.cnblogs.com/webglcn/p/10639065.html

你可能感兴趣的文章
隐藏当前Activity而不关闭
查看>>
第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—meta属性返回指定值给回调函数—Scrapy内置图片下载器...
查看>>
温故而知新-String类
查看>>
JS控制div跳转到指定的位置的几种解决方案总结
查看>>
《图说VR》——HTC Vive控制器按键事件解耦使用
查看>>
【Java学习笔记之十一】Java中常用的8大排序算法详解总结
查看>>
android studio使用真机测试时点击Debug调试模式时报Error running app:No target device found,点击运行模式却是启动正常的...
查看>>
洛谷 P1553 数字反转(升级版)【字符串+STL stack】
查看>>
【javascript】异步编年史,从“纯回调”到Promise
查看>>
C# WinForm开发系列 - Form/Window
查看>>
python 读取单所有json数据写入mongodb(单个)
查看>>
ZooKeeper可视化Web管理工具收集(待实践)
查看>>
linux pthread【转】
查看>>
EF基础知识小记三(设计器=>数据库)
查看>>
Mybatis系列(四):Mybatis缓存
查看>>
python中的列表、元组、数组——是不是特别容易混淆啊??
查看>>
phpmyadmin 自动登录的办法
查看>>
苹果各版本手机更换电池的视频
查看>>
在Centos7.x中安装psutil模块
查看>>
深度学习的异构加速技术(二):螺狮壳里做道场
查看>>