进程、线程、协程
进程
操作系统资源分配(CPU 时间片、内存)的最小单位;
进程之间的通信机制: 管道、socket、消息队列、信号量、共享内存;
线程
操作系统 CPU 调度的最小单位
协程
子程序的概念, 不被操作系统内核管理, 完全由用户程序控制, 运行在用户态;
多个协程之间可以互相中断, 完全由程序状态控制;
总结
进程与线程
线程运行在进程中, 一个进程有多个线程;
线程和进程都可以并行执行;
资源分配给进程, 进程下所有线程共享进程资源;
进程中的线程通信需要通过同步原语, 不同进程的线程通信需要通过消息通信;
线程与协程
协程相对线程更轻量;
进程中多线程通信需要同步, 而协程通信只需要控制状态即可;
协程由于不需要同步, 不会存在对共享资源加锁对问题,也不会存在线程上下文切换的问题,所以通常效率会比线程高;
评论