JavaEE——进程与线程的关系

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吖!!感谢你看到这里🌬
祝今天的你也
开心满怀,笑容常在。
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值