文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

图解分析Javaweb进程与线程

2024-04-02 19:55

关注

一、认识进程

1,线程初识

一个可执行程序运行起来,就可以看作是一个进程

进程也是操作系统分配资源的最小单元

一个进程在内核中都会对应一个PCB对象

一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行 着多份代码.

2,进程属性

进程id:身份表示

一组内存指针:指向进程运行时依赖的指令和数据在内存的哪个位置

进程状态:是正在运行,还是正在休眠

进程优先级:这个进程是优先上CPU执行还是放在后面上

进程的上下文:保存了上次进程在CPU上执行的进度,以便下次进程上CPU的时候能够继续执行

进程的记账信息:记录了进程在CPU上一共执行了多长时间,通过这个时间来限制不要让某个进程霸占CPU太久,导致其他进程无法执行

从微观上看,一个CPU同一个时刻只能执行一个线程命令

进程太多,CPU太少

通过“并发”的方式,让CPU快速调度,微观上仍然是串行,但调度上极快,宏观上就感觉是多个进程齐头并进

二、为什么要有线程

首先, "并发编程" 成为 "刚需".

单核 CPU 的发展遇到了瓶颈. 要想提高算力, 就需要多核 CPU. 而并发编程能更充分利用多核 CPU 资源. 有些任务场景需要 "等待 IO", 为了让等待 IO 的时间能够去做一些其他的工作, 也需要用到并发编程.

其次, 虽然多进程也能实现 并发编程, 但是线程比进程更轻量.

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

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

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

三、认识线程与进程的区别

如果把一个进程看作是一个工厂,线程就是工厂中的若干流水线

线程其实包含在进程中

一个进程可能有多个线程

每一个线程都有一段自己要执行的逻辑(命令),每一个线程都是一个独立的“执行流”

同一个进程中的很多线程之间,是共享一些资源

四、Linux中的线程

1,内核态与用户态

假如你去银行存款,得在窗口和柜员交互

存款的过程:

1、先和柜员沟通,要存多少钱,存在那个账户上

2、把卡和钱交给柜员

以上都是能感知的到动作,相当于代码在用户态执行

3、柜员拿到东西在电脑上操作

以上是用户感知不到的,相当于代码在内核态执行

用户态:权限相对比较小,只能进行一些低风险的操作

内核态:比用户态高很多

2,PCB描述线程

 内核只认识PCB

一个线程和一个PCB对应

一个进程可能有多个PCB

这三个PCB就对应了java.exe这个进程的三个线程,内核中也把这若干从属同一个进程称为“线程组”,类似于MySql中的多对一

五、多种类型

以一个比较形象的例子,吃苹果,100苹果分着吃

线程:分配资源,房间+桌子

进程:调度让小朋友去吃苹果

1,单进程单线程

2,多进程单线程

3,单进程多线程

4,多进程多线程

5,进程中线程分析

一个线程中最多有多少个线程

1,CPU的个数有关

2,和线程执行的任务的类型也有关

        CPU密集型:程序一直在执行计算任务

        IO密集型:主要进行输入输出的操作

多个线程去抢夺一个资源可能造成线程不安全

一个线程如果出现抛出异常,并且没有很好的处理这个异常,整个进程就会被终止,其他线程无法工作

到此这篇关于图解分析Javaweb进程与线程的文章就介绍到这了,更多相关Javaweb 进程 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯