进程和线程的区别和联系

首先一个重要的观点:

进程是系统分配资源的最小单位,线程是系统调度的最小单位。

进程:

进程是操作系统对⼀个正在运行的程序的⼀种抽象,换言之,可以把进程看做程序的⼀次运行过程; 同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

进程在创建的时候系统就会给它分配内存,硬盘,网络资源等,同时一台计算机上可以同时有多个进程,它们是互不干扰的,我们将这样的特性叫做“隔离性”;但目前的应用,往往要完成一个复杂的业务需求,因此就要多个进程一起完成,那么就有了进程间的“信息交换”目前,主流操作系统提供的进程通信机制有如下: 1. 管道 2. 共享内存 3. 文件 4. 网络 5. 信号量 6.信号

线程:

一个线程就是⼀个"执行流".每个线程之间都可以按照顺序执行自己的代码.多个线程之间"同时"执行着多份代码,线程是包含在进程里的。线程的出现就是为了提高效率;

为什么要有线程:

最主要的就是目前“并发编程”成为“刚需”

单核CPU的发展到达了瓶颈,因此就需要发展多核CPU,多核CPU往往又需要并发编程才能发挥出它的实力;

而且很多程序运行时并不是每时每刻都在占用资源的,也会有空闲的间隔,这些间隔要被充分利用起来就需要并发编程;

那么就会有人好奇,多进程也可以实现并发编程呀,为什么要搞多线程呢?

那就是因为线程比进程更加轻量化:

1.创建线程比创建进程快

2.销毁线程比销毁进程快

3.调度线程比调度进程快

总得来说就是因为多线程效率更高,举个栗子:

把进程看作一个工厂,线程看成打工人,现在要加工1000吨石材,如果一个工厂里面只有一个工人是不是很慢,那么我们要开多一个工厂吗,可以但是没必要,耗费太大,我们为什么不多雇点工人呢?因此一个工厂里面有多点工人就会提高效率了

线程与进程的区别:

进程是包含线程的,每个进程至少一个线程,即“主线程”;

进程和进程之间不共享内存空间,同一个进程的线程之间共享内存空间;

进程是系统分配资源的最小单位,线程是系统调度的最小单位。

⼀个进程挂了⼀般不会影响到其他进程.但是⼀个线程挂了,可能把同进程内的其他线程⼀起带走(整 个进程崩溃)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值