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