并发编程的故事——进程和线程

进程和线程


一、定义

进程:资源分配的最小单位,是线程的容器。运行的程序,负责管理IO和内存,以及指令的执行
线程:其实就是指令流,进程的子集,进程可以分多个线程运行
区别:
1、进程是最小资源分配,线程是最小调度(指的是cpu切换指令流执行的调度)
2、线程是进程的子集
3、同样的计算机里面进程通讯是IPC方式,不同计算机就要通过协议比如HTTP
4、线程切换的成本更低,比如CPU需要并发执行进程或者是线程,线程比较轻量,切换消耗的CPU时间也更小

二、并发和并行

定义:
并发:cpu同时执行多个线程,交替执行,好比扫一会地然后去做饭
并行:多个cpu执行多个线程,好比多个饭煲一起煮饭

三、应用

异步调用
在一个程序执行时,一段指令流需要阻塞或者是IO操作,那么完全可以开一个线程来异步执行这段指令流,而不是一个线程完成所有的指令处理。
异步调用常用在视频格式转换
并发应用
并发不一定能够提升效率,反而在来回切换的时候浪费了资源和时间。有的任务也不适合切换,主要还是看任务的执行目标。


猜你喜欢

转载自blog.csdn.net/weixin_45841848/article/details/132594572