进程和线程的由来

在早期呢,我们的计算机是串行执行程序的,用户每输入一条指令,计算机就执行一条指令,用户在思考或者输入指令的时候,计算机就处于等待状态,这样计算机就白白浪费了大量的时间,来等待用户进行下一步的操作,那针对这个问题呢,后来人们引入了批处理操作系统。

那批处理操作系统是怎么执行我们的程序的呢,首先呢,人们把需要让计算机执行的指令呢,事先做成一个清单,然后把这些指令放到磁带上,交由计算机读取并执行,批处理操作系统相对于串行执行呢,大大提升了操作系统的利用率,但后来人们发现,假如一个任务在执行过程中呢,需要进行大量的数据读写操作,也就是我们通常所说的IO操作,在这个任务执行IO操作的过程中呢,我们的CPU一直处于空闲状态,这样呢,我们就白白浪费了一部分CPU资源,为了解决这个问题呢,后来出现了多进程操作系统。

那多进程操作系统又是怎么执行我们的程序的呢?在多进程操作系统中,每个进程对应一个程序,并且进程拥有自己独占的内存空间,进程之间呢,互不干扰,进程之间呢,也能够互相的切换,假如现在有两个任务A和B,并且我们的计算机只有一个单核CPU,如果任务A在执行过程中需要大量的IO操作,我们的操作系统可以让A先使用CPU,当A执行过程中需要进行IO操作的时候,操作系统就先让任务B去使用CPU,等任务A的IO操作执行完毕之后,再把CPU分配给任务A,这样就充分利用了我们宝贵的CPU资源,多进程操作系统相比批处理操作系统大大提升了操作系统的性能,但是人们并不满足于此,由于一个进程在一段时间内只能处理一个任务,如果一个进程有多个子任务该怎么办?那我们只能一个一个的按顺序执行进程的子任务。

那能不能让进程的子任务并发执行来进一步提升操作系统的实时性呢?

答案是肯定的,基于此,人们引入了多线程。

在多线程操作系统中,线程用来执行进程的子任务,一个进程包含一个或者多个线程,同一个进程内的多个线程呢,共享该进程的内存空间,同时呢,线程之间也能够互相的切换,如果说进程的引入为操作系统级别的并发提供了可能的话,那么线程的引入是为进程内部的并发提供了可能。

 

进程与线程的区别

首先最重要的呢,就是,进程拥有自己独占的内存空间,而线程没有,同一个进程内的多个线程,共享该进程的内存空间。

进程的创建、销毁以及进程间的切换所需要的开销呢,远大于线程相应的操作所需要的开销

一个进程出现问题,基本不会影响其它进程,但是一个线程出现问题呢,可能会影响整个程序的稳定性,也就是说,多进程相对于多线程来说呢,它的稳定性相对是要好一些的

进程呢,是操作系统分配资源的基本单位,而线程呢,是操作系统调度的基本单位

 

注:文章有对应的视频教程,如果喜欢视频教程,可以用淘宝APP扫描下图二维码试看哦(不喜欢可以忽略^_^)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值