绿色线程,还有协程的概念,其实都是在虚拟机层次又虚拟一层线程的概念,本身线程就是操作系统在硬件层次抽象出来的,有人认为绿色线程可以减少内核的线程切换,进而增加程序效率,但是,我认为前提是应用层的线程切换实现真的要不内核级别的快,这个是很困难的,java的第三方库有支持协程的,但是,用的很少。
Green Thread是个历史概念。早期,Java平台在某些平台没有提供本地线程的支持,无法将用户线程映射到OS线程。于是在虚拟机层面建立了用户态的线程,这种线程就是所谓的绿色线程。由于它出于用户态,因此需要JVM对其进行调度。
后期的Java,绿色线程已经被1:1的线程映射取代,即完全出于内核态。
内存态的thread现在仍然存在,比如协程,这块可以参考下erlang, goroutine的实现。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。