• 🌟纤程(用户空间之内的线程)
    • 比线程的粒度更小的一个概念
    • 适合于计算密集型的任务,不经过内核空间的那些任务
    • jdk暂时官方不支持纤程,但是有第三方纤程库
    • 纤程轻、线程重
    • 主要是在发生切换的角度上
    • 纤程在用户空间,线程在内核空间
    • 线程OS起不了多少,每个线程差不多1M内存,现有的OS起1w个线程就会很慢,大部分时间都放在线程的切换上了
    • 纤程可以起几万个,比线程多得多
    • 纤程的管理和执行在目前的hotspot上不成熟—->Quasar类库(一个网站的产品)
    • 未到1.0,了解即可,不建议开发中使用
    • golang、kotlin、python天然支持纤程
    • python什么都支持,因为有好多人给python写库
    • java中用maven引入
    • 目前这个类库不是很成熟,并且使用这个类库的人真的不多
    • 源码是用什么写的,底层到底是怎么执行的
      • Quasar就是java写的
      • 执行的时候需要设置VM options:-javaagent—->instrumetation,动态更改字节码,获取对象的大小(长度),其中字段的大小和长度!!!(对象布局)
      • 代理
      • JVM本身是不支持纤程的,不支持在用户空间中只要有一个纤程过来就给你分配一个栈,不可能支持
      • 所以Quasar类库通过agent改动,会自动生成对应的纤程栈,一个Fiber对应地生成一个纤程栈,然后整个Quasar类库来管理栈之间(Fiber之间、纤程之间)的切换—->premain???❓❓❓
      • 切换更轻松、更容易easy!!!