Java用户线程实现的学习与理解

#《深入理解Java虚拟机》介绍协程(coroutine)章节读后感#

  • 首先是软件在多线程模型的实现总类:内核级别的线程(KLT),这是操作系统支持,CPU调度的基本单位;用户线程(UT),这是在进程之上,由语言自己模拟操作系统调度的一种轻量级实现,它避免了在用户态和内核态的转化(CPU中断导致的损耗);还有就是混合实现,也就是在内核线程上映射了多个用户线程,用户线程可以使用操作系统提供的内科线程调度器,实现较用户线程更简单,效率较内科线程更高效。Java在早期选择了用户线程,后期改为了内核线程,现在微服务的场景下,内核线程的并发数量和效率已经不能满足需求,所以Java计划了Loom这个项目。
  • 一直在思考,Akka的actor模型是使用类似Java的线程调度器,默认是Fork/Join,那么akka应该是混合模型,应该还是会服从Java中的映射的内核线程的调度,但是同时Actor的消息也会由Dispatch调度器传递线程池执行。
  • 书里提了Loom的Fiber代码执行分为两部分—执行过程和调度器。调度器默认也是Fork/Join,其底层也是java线程,那么也应该是混合模式,可能是Akka的actor模型可以简化这两个部分的实现,这么看来Akka也算是JVM上面的一个类coroutine实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值