进程 线程 协程对比

>进程,线程 对比

1、每一个进程中必须至少包含一个线程,进程是不执行的,执行的只有线程,操作一个进程实际上就是操作里面的线程;
2、一个进行里面可以包含多个线程,多个线程可以同时执行(通过上下文的快速切换进行实现,同一时刻只有一个线程在执行,通过不断地切换程序使得看起来像是在并行),但同一个进程里面的所有线程共用一个内存资源,所以修改一个线程,可能会有干扰其他线程;
3、进程与进程之间互不干扰,因为不同进程内存空间不同,修改父进程是不会影响子进程,但删除是会影响子进程;
4、创建一个新的线程比较容易,而创建一个新的进程需要从父进程处继承;
5、进程与线程哪个速度快:其实这个问题是错误的,因为进程和线程没有可比性,进程是资源的集合,进程也是需要线程来发送指令给CPU计算的;
6、启动一个进程快还是启动一个线程快:启进线程比进程快,因为启动进程需要到内存需申请空间和计算,启动线程只是相当于发送指令。

原文链接:https://blog.csdn.net/JiangHui1211/article/details/92399510

进程与线程区别

1、根本区别: 进程是操作系统资源分配和独立运行的最小单位;线程是任务调度和系统执行的最小单位。
2、地址空间区别: 每个进程都有独立的地址空间,一个进程崩溃不影响其它进程;一个进程中的多个线程共享该 进程的地址空间,一个线程的非法操作会使整个进程崩溃。
3、上下文切换开销区别: 每个进程有独立的代码和数据空间,进程之间上下文切换开销较大;线程组共享代码和数据空间,线程之间切换的开销较小。

进程与线程的选择

1、线程的创建或销毁的代价比进程小,需要频繁创建和销毁时应优先选用线程;
2、线程上下文切换的速度比进程快,需要大量计算时优先选用线程;
3、线程在CPU上的使用效率更高,需要多核分布时优先选用线程,需要多机分布时优先选用进程
4、线程的安全性、稳定性没有进程好,需要更稳定安全时优先使用进程。

https://blog.csdn.net/weixin_49199646/article/details/109210547 原文出处

>>协程和线程的差异

  1. 一个线程可以多个协程,一个进程也可以单独拥有多个协程。
  2. 协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态。
  3. 线程是抢占式,而协程是非抢占式的,所以需要用户自己释放使用权来切换到其他协程,因此同一时间其实只有一个协程拥有运行权,相当于单线程的能力。
  4. 协程并不是取代线程, 而且抽象于线程之上, 线程是被分割的CPU资源, 协程是组织好的代码流程, 协程需要线程来承载运行, 线程是协程的资源, 但协程不会直接使用线程, 协程直接利用的是执行器(Interceptor), 执行器可以关联任意线程或线程池, 可以使当前线程, UI线程, 或新建新程.。
  5. 线程是协程的资源。协程通过Interceptor来间接使用线程这个资源
posted @ 2022-04-12 00:15  饭兜  阅读(44)  评论(0编辑  收藏  举报