线程和进程

首先我们先来形象的比喻一下:

CPU->相当于一座工程,时时刻刻都在运行.

进程->相当于工厂的车间,他代表CPU所能处理的单个任务.任意时刻,CPU总是运行一个进程,其他进程处于非运行状态.

一个车间会有很多个工人,他们协同完成一个任务,线程就相当于车间里的工人,一个进程可以包含多个进程.

一个进程中可以有多个线程,他们共享这个进程的资源.线程又被称为迷你进程,但是他比进程更容易创建,也更容易撤销.

线程时进程中执行运算的最小单位,是操作系统执行处理机制的基本单位.每个进程至少有一个线程,线程可以利用进程所拥有的的资源调度和运算.

但是我们为什么经常听到多线程而没有听到多进程呢?

那么我们就聊一聊进程的有点:

线程的特征和进程差不多,进程有的他都基本有,比如:

  • 线程具有就绪,阻塞,运行三种基本状态,同样具有状态之间的转换关系.
  • 线程间可以并发执行,
  • 在多CPU的环境下,多线程也可以分配到不同的CPU上并行执行->充分利用CPU

优点:同一个进程中可以同时存在多个线程,这些线程共享该进程的资源,进程建的通信必须请求操作系统服务(因为CPU要切换到内核态),开销很大,同一进程下的线程间,无需操作系统敢于,开销更小.

但是,不同进程之间线程的通信,也必须请求操作系统服务

线程间的并发比进程间的并发开销更小,系统并法性提升

同样,需要注意的是,从不同进程的线程进行操作,他是会导致进程切换的,,所以开销也很大.

应为这些特点导致:不管是创建线程,销毁线程,调度线程都比进程更快

但是进程也是优缺点的:

当进程中一个线程崩溃时,会导致其所属进程中所有线程崩溃.

既然介绍完进程和线程这么相似,那么不妨聊聊将线程和进程放在一起讨论

引入线程之前,进程是资源分配和独立调度的基本单位.引入线程之后,进程是资源分配的基本单位,线程是独立调度的基本单位

进程与线程的对比

  • 进程是操作系统分配资源的基本单位,所有与该进程有关的资源,均会被记录在进程控制块PCB中,已表示该进程所拥有的全部资源.同进程下的所有线程共享该进程下所有资源
  • 线程是分配处理机的基本单位,与资源分配无关.事实上.正在处理机上的运行的是线程,而不是进程
  • 一个进程只能属于一个进程,而一个进程可以属于多个线程,但至少有一个线程.
  • 线程在执行的时候需要协作同步,不同进程建要利用消息通信的方法实现同步.

线程与进程之间的关系

  • 进程将CPU资源分配给线程,即真正在CPU上运行的是线程
  • 操作系统分配给进程,同一进程所有线程共享该进程的所有资源

进程与线程的区别

  • 同一进程的中的线程共享同一内存空间,但是进程之间是独立的.
  • 同一进程中的所有线程的数据是共享的(进程通讯),进程之间的数据是独立的.
  • 对于同一进程内的线程可能会影响其他线程,但是一个进程的不会影响其他进程
  • 线程是一个上下文的执行指令,而进程则是与运算相关的一簇资源。
  • 同一个进程的线程之间可以直接通信,但是进程之间的交流需要借助中间代理来实现。
  • 创建新的线程很容易,但是创建新的进程需要对父进程做一次复制。
  • 一个线程可以操作同一进程的其他线程,但是进程只能操作其子进程。
  • 线程启动速度快,进程启动速度慢(但是两者运行速度没有可比性)。

多进程

在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务(多进程)。现代的操作系统几乎都是多进程操作系统,能够同时管理多个进程的运行。 多进程带来的好处是明显的。但是多进程对于系统的资源要求甚高,资源浪费也比较严重。应用多进程场景最多的是windows系统,例如同时打开运行软件,每个软件打开相当于运行一个进程。

多线程

在一段完整的代码中,往往会有需要独立的代码模块,而这些独立运行的程序片段叫作“线程”(Thread),利用多个线程编程的概念就叫作多线程处理(多线程编程),多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。多线程是在程序在同一时间需要完成多项任务的时候实现的。多线程的目的仅仅是为了提高资源利用效率。各个线程执行自己的任务,这些线程可以”同时进行“。同时进行并非同一时刻进行,而是在某一时间段内,完成所有任务,任务的运行有先后顺序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值