网站首页 > 文章精选 正文
新的虚拟线程创建成本和销毁成本都是非常低廉的,因为它不是传统的跟平台线程一对一,而是多对一的,所以节约了很多cpu资源,减少了cpu调度带来的吞吐量降低。
它主要有3个概念
调度器
它利用ForkJoinPool in first-in-first-out (FIFO)做为调度器,这个ForkJoinPool是跟parallel streams中的common pool是不一样的.
下面是它的可配置属性定义
private static ForkJoinPool createDefaultScheduler() {
// Omissis int parallelism, maxPoolSize, minRunnable;
String parallelismValue = System.getProperty("jdk.virtualThreadScheduler.parallelism");
String maxPoolSizeValue = System.getProperty("jdk.virtualThreadScheduler.maxPoolSize");
String minRunnableValue = System.getProperty("jdk.virtualThreadScheduler.minRunnable");
}
可以通过修改这些属性值,对调度器进行调优。其中parallelismValue是并行度的意思,默认是取自Runtime.getRuntime().availableProcessors();,其它两个值的默认值计算方式如下,
maxPoolSize = Integer.max(parallelism, 256);
minRunnable = Integer.max(parallelism / 2, 1);
载体线程(carrier thread)
这操作系统调度平台线程,但虚拟线程是由jdk调度的,jdk给虚拟线程分配执行虚拟线程的平台线程的过程,叫挂载,取消分配叫卸载。
在这里平台线程有个特别的称呼载体线程(carrier thread),实际上虚拟线程和载体线程是相互不可见的,栈和线程本地变量是完全独立的。
未挂载的虚拟线程则存放在堆上,挂载后,会拷贝到栈上。
Continuation(延续)
为程序流程(函数)提供了运行,暂停/继续 (yield/resume)的能力.虚拟线程包含了许多的状态。从网上找了一个很详细的状态流转图
当状态是绿色的时候,虚拟线程已经是被挂载到carrier thread上了,这蓝色的状态,表明已经从carrier thread上做了卸载。紫色是已经绑定上了carrier thread。红色代表状态终止。Continuation的run,park,yield将产生这些状态。
猜你喜欢
- 2025-04-01 高级Java面试之二分法查找(二分法查找 java)
- 2025-04-01 海豚DolphinScheduler系统调度操作分析
- 2025-04-01 Java对图片进行二值化,有什么用(autojs图片二值化处理)
- 2025-04-01 大数据必学Java基础(二):Java核心机制
- 2025-04-01 Java软件工程师代码规范(java软件开发工程师岗位要求)
- 2025-04-01 《java高级框架应用开发SSH》第一部分:Struts2
- 2025-04-01 一波RxJava 3.0来袭,请做好准备(rxjava简单使用)
- 2025-04-01 Java机器学习库(Java ML)(二、聚类)
- 2025-04-01 初识Java—(二) Java的运行机制(java的运行机制是怎样的)
- 2025-04-01 Java 21正式发布,15大特性一览(java1.6特性)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)