标签:code 时间 用户控制 一个 new 实体 联系 用户态 数据段
进程是系统分配资源和调度的基本单位, 每个CPU同一时刻只能处理一个进程。进程拥有程序代码段、打开的文件、数据资源、独立的内存空间。
进程的局限性是创建、撤销、切换的开销比较大。
线程是程序执行的最小单位,线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程;线程拥有自己的栈空间。
线程的优点:减小了程序并发执行的开销,提高了系统的并发性能。
线程的缺点:线程没有自己的系统资源,只有运行时不可缺少的资源,但是同一进程的各线程可以共享进程所拥有的系统资源。对于某些独占资源存在锁机制,处理不当会出现死锁。
协程是一种用户态的轻量级线程;协程调度完全由用户控制,没有线程切换的系统资源开销。
优点:协程执行效率高。因为子程序切换不是线程切换,由程序自身控制,没有线程切换的开销。协程不需要多线程的锁机制。在协程中控制共享资源不加锁,只需要判断状态就好
1、资源方面:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其他进程不可见
2、通信:进程间通信IPC,进程间可以直接读写进程数据段进行通信——需要进程同步和互斥手段辅助,以保证数据的一致性
3、调度和切换:线程上下文切换比进程上下文切换要快的多
4、在多线程OS中,线程不是一个可执行的实体
- 1、线程是操作系统调度,协程是应用系统自己调度。
- 2、协程的栈空间是可以动态调整的,线程的栈空间是固定大小的
- 3、线程进程都是同步机制,而协程则是异步
- 4、协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态
- 5、一个线程可以多个协程,一个进程也可以单独拥有多个协程
标签:code 时间 用户控制 一个 new 实体 联系 用户态 数据段
原文地址:https://www.cnblogs.com/simple-record/p/12937697.html