JavaEE——进程与线程的关系

发布于:2022-12-21 ⋅ 阅读:(476) ⋅ 点赞:(0)
Java传送门

JavaSE

JavaEE

JavaEE——进程调度



进程与线程的关系

1.为什们要有线程

首先, “并发编程"成为"刚需”, 但仍存在一个 重要问题

我们写一个 服务器程序,我们可以针对每个客户端,分别创建一个进程,去提供服务。但服务器这里可能有多个客户端,来来回回。每次有个新客户端来了,都需要创建个线程来服务,客户端走了,进程就销毁

如果我们频繁的创建、销毁进程,这个操作是比较低效的。

20200811130123_5074f

为什么是低效的呢?

进程的操作步骤为:

  1. 创建PCB
  2. 给进程分配资源(内存/文件),赋值到PCB中
  3. 把PCB插入链表

进程的销毁步骤为:

  1. 把PCB从链表上删除
  2. 把PCB中持有的资源释放
  3. 销毁PCB

而在第二个步骤中,分配资源和释放资源这件事,对于操作系统来说是比较消耗时间的的。

# 注意 #

为了解决这个问题,这时我们就要使用到进程。


2.线程的概念

  1. 线程是被包含在进程中的。
  2. 一个进程会默认有一个线程,也可以有多个线程。
  3. 每个线程都是一个“执行流”可以单独在CPU上就行调度。每个线程之间都可以按照顺讯执行自己的代码。多个线程之间 “同时” 执行着多份代码。
  4. 同一个进程中的这些线程,公用同一份系统资源(内存+文件)。

我们也把线程称为“轻量级进程”

  • 创建线程比创建进程更快.
  • 销毁线程比销毁进程更快.
  • 调度线程比调度进程更快.

3.多线程的好处

  1. 能够充分利用上多核CPU,能够提高效率
  2. 只是创建第一个线程的时候,需要申请资源,后续在创建新的线程,都是共用同一份资源(节省了申请资源的开销)
  3. 销毁线程的时候,也是销毁到最后一个的时候,才真正释放资源,前面的线程销毁,都不必真正释放资源

4.进程与线程的区别

进程 线程
进程包含线程 \
\ 线程比进程更轻量,创建销毁更快
进程和进程之间不共享空间 同一个进程的线程之间共享一个内存空间
系统分配资源的最小单位 系统调度的最小资源

🌷(( ◞•̀д•́)◞⚔◟(•̀д•́◟ ))🌷

以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!
在这里插入图片描述
加粗样式

这里是Gujiu吖!!感谢你看到这里🌬
祝今天的你也
开心满怀,笑容常在。
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到