IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 普歌+线程和进程【超详细+拓展】 -> 正文阅读

[Java知识库]普歌+线程和进程【超详细+拓展】

线程和进程【超详细+拓展】

线程和进程

我们现在使用的电脑很多都是几核几线程的,一个电脑的运行性能和CPU有着很大的关系,而几核的电脑直接影响到CPU的好坏!

我们正常来说:几核的电脑可以运行多少应用,多少个进程。而这多少个进程又带动着多线程。宏观上看去我们所打开的应用都是同时进行的,但是从微观上看,是有先后顺序的,它们互相争夺这CPU的资源。


我们之前所使用的单核电脑,为何也可以同时开启多个应用,同时进行着不同的功能,这就说到了CPU的复制,单核的电脑系统中,会分化出多个模拟的CPU,从而带动了多个应用的同时进行!

解释

  • 进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配合调度的一个独立单位
  • 线程:是进程的一个实体,是CPU调度合分派的基本单位,是比进程更小的能独立运行的基本单位。线程基本不拥有系统的基本资源,只拥有一些运行。

线程和进程之间的关系:

  • 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程可以并发执行!
  • 相对于进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

区别:

  1. 主要区别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程只是一个进程中不同的执行路径。
  2. 线程有自己的堆栈和局部变量,但线程之间没有独立的地址空间,一个线程死掉就等于一个进程死掉,所以多进程比多线程程序健壮。但在进程切换时,耗费资源过大,效率较差。
  3. 线程的划分尺度小于进程,使得多线程程序的并发性高
  4. 线程不能独立运行;进程可以跨机器迁移

拓展

进程树

进程树:一个进程树由多个不同的进程组成,这些进程有着父级和子级的关系

举例:

我们打开cmd.exe,这是一个进程。
在cmd.exe命令行窗口中,输入notepad.exe,打开了记事本。
此时cmd.exe和notepad.exe两个不同的进程,组成了一个进程树。
且cmd.exe是父级进程;notepad.exe是子级进程。

  • 特点:子级进程伴随着父级进程的结束而结束。而子级进程结束,不会影响到父级进程的运行。

时间片

时间片又称“量子”或“处理器片”,是分时操作系统分配给每个正在运行的进程微观上的一段CPU时间(在抢占内核中是:从进程开始运行直到被抢占的时间)。

解说:事实上,虽然一台计算机通常可能拥有多个CPU,但是同一个CPU永远不可能真正的同时运行多个任务。
在只考虑一个CPU的情况下,这些进程“看起来像”同时运行的,实则是轮流穿插地运行,由于时间片通常很短,用户感觉不到!

-时间片是由操作系统内核的调度程序分配给每个进程。首先,内核会给每个进程分配相等的初始时间片,然后每个进程轮番的执行相应的时间,当所有进程处于时间片耗尽的状态时,内核会重新为每个进程计算并分配时间片,如此往复,完成相应的性能和操作!

  • 时间片的拓展:

下文来自百度百科:
通常状况下,一个系统中所有的进程被分配到的时间片长短并不是相等的,尽管初始时间片基本相等(在Linux系统中,初始时间片也不相等,而是各自父进程的一半),系统通过测量进程处于“睡眠”和“正在运行”状态的时间长短来计算每个进程的交互性,交互性和每个进程预设的静态优先级(Nice值)的叠加即是动态优先级,动态优先级按比例缩放就是要分配给那个进程时间片的长短。一般地,为了获得较快的响应速度,交互性强的进程(即趋向于IO消耗型)被分配到的时间片要长于交互性弱的(趋向于处理器消耗型)进程。


以上是,对于进程和线程的理解!

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 10:55:43  更:2022-05-06 10:58:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:15:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码