iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >图解分析Javaweb进程与线程
  • 160
分享到

图解分析Javaweb进程与线程

2024-04-02 19:04:59 160人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、认识进程1,线程初识2,进程属性二、为什么要有线程三、认识线程与进程的区别四、linux中的线程1,内核态与用户态2,PCB描述线程五、多种类型1,单进程单线程2,多进程单线

一、认识进程

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 进程 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 图解分析Javaweb进程与线程

本文链接: https://www.lsjlt.com/news/141080.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 图解分析Javaweb进程与线程
    目录一、认识进程1,线程初识2,进程属性二、为什么要有线程三、认识线程与进程的区别四、Linux中的线程1,内核态与用户态2,PCB描述线程五、多种类型1,单进程单线程2,多进程单线...
    99+
    2024-04-02
  • Javaweb进程与线程的示例分析
    这篇文章将为大家详细讲解有关Javaweb进程与线程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、认识进程1,线程初识一个可执行程序运行起来,就可以看作是一个进程进程也是操作系统分配资源的最...
    99+
    2023-06-29
  • 分析详解python多线程与多进程区别
    目录1 基础知识1.1 线程1.2 进程1.3 两者的区别2 Python 多进程2.1 创建多进程方法1:直接使用Process方法2:继承Process来自定义进程类,重写run...
    99+
    2024-04-02
  • Java多线程并发、并行、线程与进程实例分析
    本篇内容介绍了“Java多线程并发、并行、线程与进程实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、并发与并行并发:指两个或多个事...
    99+
    2023-07-02
  • JUC并发编程中进程与线程的示例分析
    这篇文章将为大家详细讲解有关JUC并发编程中进程与线程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,...
    99+
    2023-06-29
  • 详谈java线程与线程、进程与进程间通信
    线程与线程间通信一、基本概念以及线程与进程之间的区别联系:关于进程和线程,首先从定义上理解就有所不同1、进程是什么?是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行...
    99+
    2023-05-31
    进程 线程 通信
  • Python进程池与进程锁实例分析
    本篇内容主要讲解“Python进程池与进程锁实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python进程池与进程锁实例分析”吧!进程池什么是进程池上一章节关于进程的问题我们提到过,进程...
    99+
    2023-06-29
  • Python的进程,线程和协程实例分析
    这篇“Python的进程,线程和协程实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的进程,线程和协程实例...
    99+
    2023-06-29
  • 深度解析Python线程和进程
    目录什么是进程什么是线程线程与进程的区别并行与并发Python中的多进程Python中进程操作线程Python的threading模块锁Lock:全局解释器锁(GIL)参考文章:什么...
    99+
    2024-04-02
  • Linux中进程和线程的示例分析
    这篇文章主要为大家展示了“Linux中进程和线程的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中进程和线程的示例分析”这篇文章吧。计算机实际上可以做的事情实质上非常简单,比如...
    99+
    2023-06-13
  • Node.js中进程和线程的示例分析
    这篇文章给大家分享的是有关Node.js中进程和线程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。进程与线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有...
    99+
    2023-06-15
  • java中进程和线程的示例分析
    小编给大家分享一下java中进程和线程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么会有进程在简单的批处理操作系统中,作业时串行执行的,即一个作业...
    99+
    2023-06-20
  • 详解Java线程与进程的区别
    这篇文章主要讲解了“详解Java线程与进程的区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“详解Java线程与进程的区别”吧! 一、线程与进程的...
    99+
    2024-04-02
  • Java线程安全与非线程安全解析
    ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?StringBuilder和StringBuffer有什么区别?这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线...
    99+
    2023-05-31
    java 线程安全 ava
  • Golang中线程与协程的对比分析
    Golang中线程与协程的对比分析 在现代的软件开发中,多线程编程是一项非常常见的任务。而随着硬件技术的发展,多核处理器已经成为了主流,因此利用多线程并行处理数据已经成为了提高程序性能...
    99+
    2024-02-29
    golang 线程 协程 go语言
  • Python进程和线程知识点举例分析
    本篇内容主要讲解“Python进程和线程知识点举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python进程和线程知识点举例分析”吧!多线程一个进程至少包含一个线程,其实进程就是由若干个...
    99+
    2023-06-02
  • Python:线程、进程与协程(7)——
         前面转载了一篇分析进程池源码的博文,是一篇分析进程池很全面的文章,点击此处可以阅读。在Python中还有一个线程池的概念,它也有并发处理能力,在一定程度上能提高系统运行效率;不正之处欢迎批评指正。     线程的生命周期可以分为5...
    99+
    2023-01-31
    线程 进程 Python
  • Python:线程、进程与协程(3)——
        Queue模块是提供队列操作的模块,队列是线程间最常用的交换数据的形式。该模块提供了三种队列:Queue.Queue(maxsize):先进先出,maxsize是队列的大小,其值为非正数时为无线循环队列Queue.LifoQueue...
    99+
    2023-01-31
    线程 进程 Python
  • java 多线程与并发之volatile详解分析
    目录CPU、内存、缓存的关系CPU缓存什么是CPU缓存为什么要有多级CPU CacheJava内存模型(Java Memory Model,JMM)JMM导致的并发安全问题可见性原子...
    99+
    2024-04-02
  • Python:线程、进程与协程(2)—
        上一篇博文介绍了Python中线程、进程与协程的基本概念,通过这几天的学习总结,下面来讲讲Python的threading模块。首先来看看threading模块有哪些方法和类吧。主要有:Thread :线程类,这是用的最多的一个类,...
    99+
    2023-01-31
    线程 进程 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作