进程与线程的故事

故事
1. 早期计算机和现代的普通计算器是类似的,只有输入和输出的功能。输入一个指令,计算机计算后得出结果。
2. 显然每次输入一个指令得出结果是低效的,所以批处理系统诞生了。批操作系统可以把一系列的指令集保存在存储介质中,在执行任务是读取指令集然后运行得到结果。
3. 显然批处理系统一次只能运行一个任务,在读取存储介质中的数据时,CPU是空闲的。所以进程诞生了,用一个进程来执行一个任务。这样就可以在批操作系统上实现多任务,但早期CPU可能只有一个核心,所以设计了CPU调度算法来按照一定规则执行各个任务。所以普通用户使用时会感觉多任务同时进行。
4. 由于进程是某一个任务指令集,所以只能串行执行,并且进程间通信只能通过外部存储介质等进行通信。但很多情况下,某一个任务也需要并行执行,这种情况下共享进程信息的线程诞生了。线程间可以通过管道,信号等进行通信。

区别 https://blog.csdn.net/swjtuwyp/article/details/51469552
1. 进程是操作系统分配资源的最小单位,线程是程序执行的最小单位(CPU调度线程)
2. 进程是线程的容器,一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路径
3. 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;
4. 调度和切换:线程上下文切换比进程上下文切换要快得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值