程序 进程 线程 纤程

       关于纤程在JDK里面不直接支持,纤程有个名字叫协程,这个里面区分四个概念 程序,进程,线程,纤程,这是通俗易懂的概念。

关于纤程和线程的本质区别是一个通过内核空间,一个不通过内核空间

       Linux操作系统分为两个不同的级别 ,一个是用户级,一个是系统级,JVM是跑在用户空间里的,他要进行系统调用的时候要通过内核空间来进行调用,这其中就包括了启动一个个线程,当启动一个线程的时候,需要内核调用,这个过程比较复杂,消耗资源比较多,正是因为这种并发比较重量级,就干脆把线程挪到用户空间去,一个个线程就是栈来回切换的记录。所以每一个纤程和每一个纤程对应的也是一个纤程栈,我自己执行的时候对应第一个栈数据,整个运行的时候运行到这里了可以让他暂停,运行到了下一个可以让下一个暂停,他们本质看上去也是CPU执行,他们之间切换的时候通过用户空间的,不通过系统空间,所以切换资源消耗低,切换也比较快。
          到目前JDK13都没见官方支持纤程的影子,JAVA要想支持纤程,需要用开源第三方的纤程库。
启动一个纤程要占到1M没存,操作系统是支撑不了多少个纤程的。纤程的管理和执行现在在JDK不成熟,不直接支持,可以采用下面这个库。

<!-- https://mvnrepository.com/artifact/co.paralleluniverse/quasar-core -->
<dependency>
    <groupId>co.paralleluniverse</groupId>
    <artifactId>quasar-core</artifactId>
    <version>0.8.0</version>
</dependency>

     不过目前还没到1.0版本,了解就行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容