进程,线程,协程的概念
1.进程
是计算机中的程序关于某数据集合上的一次运行活动,进程是操作系统分配资源和调度的基本单位,进程间有各自独立的空间,且进程中通过信号进行通讯,主要的通信方式为管道,有名管道,消息队列,信号量等。
2.线程
线程有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元,是cpu调度的基本单位,线程自己不拥有系统资源,但线程间共享进程的内存,不独立占有内存,线程间的通信方式是临界区,信号量,互斥量,事件
3.协程
协程与子例程一样,协程(coroutine)也是一种程序组件,它是线程内部一种更加微小的线程。
进程,线程,协程之间的区别。
1.进程与线程
1.地址空间:线程间共享同一进程的地址空间,而进程间的地址空间是相对独立的。
2.资源:线程间共享同一进程的所有资源,而进程间的资源是相对独立的。
3.关系:一个进程可以创建多个线程,但线程不能创建进程。
4.资源消耗:进程要比线程更加消耗资源。
5.一个进程的某个线程挂掉i将导致整个进程挂掉,而进程间不会相互影响。
6.线程不能脱离进程独立执行
2.线程与协程的区别
1.一个线程可以拥有多个协程
2.线程执行机制是同步,协程执行机制是异步
3.线程切换是抢占式的,而协程切换需要用户自己控制,所以它是非抢占式的,需要用户自己释放使用权来切换协程。
4.协程切换消耗的资源比线程小。