本文共 488 字,大约阅读时间需要 1 分钟。
进程:是操作系统分配资源的基本单位,对于一个应用程序启动,就会开启对应的一个进程,分配一块内存空间。对linux而言,一个进程的内核数据结构是一个PCB(进程描述符 Process Control Block),用来存储进程的相关信息。
线程:执行调度的基本单位。一个进程会开启一个或多个线程, 这些线程会共享进程的内存空间,没有线程自己独立的内存空间。
在hotspot的jvm中,一个线程,对应操作系统的一个线程。 这个过程对于jvm的应用来讲,应用开启一个线程,会调用jvm底层进行请求操作内核开启一个系统线程,实际上会发生一个系统调用,这个时候,会有用户态到内核态的一个切换过程,会通过int 0x80(80中断/软中断)机制进行系统调用,执行系统函数。然后再把结果一层层返回给应用。
纤程(协程):是线程中的线程,比线程更轻量级,是完全执行在用户态的线程,切换和调度都不需要经过操作系统老大。
优势:
1、轻量级,大小比较小,一个纤程大概4k。
2、速度更快,切换和调度不经过操作系统
3、高效,可以一次启动10+个
目前支持纤程的语言有go、python、lua等
转载地址:http://qqcdi.baihongyu.com/