作者回复: 是的,Java未来的三个主要项目之一Loom项目 引入了被称为 fibers 的新型轻量级用户线程,甲骨文公司 Loom 项目技术负责人 Ron Pressler 在 QCon 伦敦 2019 大会上指出:“利用 fibers,如果我们确保其轻量化程度高于内核提供的线程,那么问题就得到了解决。大家将能够尽可能多地使用这些用户模式下的轻量级线程,且基本不会出现任何阻塞问题”。
具体的可以阅读以下openjdk官网链接:
https://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html
作者回复: 1、对的
2、属于用户线程,与内核线程一对一映射
作者回复: 协程可以胜任高并发场景,不过目前没有在线上的Java项目使用过协程
作者回复: netty在处理同步业务场景下,特别是业务处理比较耗时的场景下,并发处理能力有限。
作者回复: 协程更轻量级,协程是线程的子集,所以不会存在线程间的上下文切换,而仅仅是通过调度器来完成调度的。
作者回复: 1、这里说的通信方式是指协程间的通信方式,是通过数据共享来实现的,不存在线程安全问题;
2、需要CPU,协程可以更充分的利用好CPU,不会来回切换资源。
作者回复: 对的,这样理解很清晰
作者回复: 对的,减少阻塞,充分利用CPU。
作者回复: 在socket通信中,可以使用协程优化IO读写这块。例如,可以尝试用协程写个非阻塞Socket通信,或用协程简单改造下Netty。具体的实现自己可以尝试,如果遇到问题欢迎沟通。
作者回复: 会的,在mailbox为空时,消费者get会被阻塞;在mailbox满了,生产者put会阻塞。
作者回复: 由调度器保证
作者回复: 对的
作者回复: 没有其他成员变量引用"lock",这里使用没有问题,具体场景具体分析。
作者回复: 对的,一些技术框架还是需要经受大公司或者一些大型项目的验证,不过我们也可以先在一些小型项目中先行使用。