java多线程-进程与线程基础-1

2023-05-16

基本概念

进程

        是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空 间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

        进程+cpu采用时间片轮转方式的操作系统,对于单核Cpu来说,在某个时刻都只有一个任务在占用cpu资源,只是让你感觉有多个任务好似在并发,实则不然,它只是在不断的进行上下文切换(cpu资源的进程分配),进程是操作系统进行资源分配的基本单位

线程

        在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位,即CPU分配时间的单位 。

        曾经看到过这样一句话:进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。

并发与并行

        并发是指一个处理器同时处理多个任务。并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。

        这里面有一个很重要的点,那就是系统要有多核CPU才会出现并行。在有多核CPU的情况下,才会出现真正意义上的『同时进行』。

进程和线程的区别

        ①进程单独占有一段内存地址的空间,各个进程存在内存隔离,数据是分开的。所以数据同步简单但是数据共享复杂;线程所共享的是该线程所属进程所占有的内存地址空间,所以数据同步复杂但是数据共享简单。

        ②进程间无影响,但是一个线程出现问题会影响整个程序。

        ③进程是重量级的,线程是轻量级的。

 上下文切换

        上下文切换指的是内核(操作系统的核心)在CPU上对进程或者线程进行切换。上下文切换过程中的信息被保存在进程控制块(PCB-Process Control Block)中。PCB又被称作切换帧(SwitchFrame)。上下文切换的信息会一直被保存在CPU的内存中,直到被再次使用。

        可以理解为是CPU进行进程或线程的切换。上下文是指某一时间点 CPU 寄存器和程序计数器的内容。

        CPU通过CPU时间片机制来实现多线程。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务,保存当前任务状态,以便于切换回当前还未执行完的任务,从任务保存到再次进行任务加载就是一次上下文切换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java多线程-进程与线程基础-1 的相关文章

随机推荐

  • MarkDownPad2 正版破解与汉化

    用MarkdownPad2写东西看起来比较高大上 就是专业版的竟然要15美刀 所以今天分享个能用的注册码 让大家都能用免费的专业版 首先去官网下载官方版本的Markdown 因为是外国网站所以可能有点慢 我下载时就是这样 所以我传了个官方的
  • VNC连接不上?too many authentication failures

    VNC连接不上 xff1f too many authentication failures 文章目录 VNC连接不上 xff1f too many authentication failures一 VNC连接不上阿里云服务器 一 VNC连
  • 临时抱佛脚真的有用吗?

    对于面试 应该有相应的准备 xff0c 对面试公司的背景要有简单的了解 xff0c 对企业文化要有简单的认识 那么最关键的就属于问答环节 你问我答 对于这方面 xff0c 有人喜欢临时抱佛脚 但后来 xff0c 我深刻的认识到 xff0c
  • C语言| char[ ]的输出 和结束符 ‘\0‘

    输出char arr 逐个字符输入输出 c 整个字符串一次输入输出 s printf 34 61 61 61 61 61 61 start 61 61 61 61 61 61 n n 34 char arr 61 39 1 39 39 2
  • python中的isdigit()函数

    s为字符串 s isalnum 所有字符都是数字或者字母 s isalpha 所有字符都是字母 s isdigit 所有字符都是数字 s islower 所有字符都是小写 s isupper 所有字符都是大写 s istitle 所有单词都
  • 【WiFi模块ASP-ESP8266】理论讲解与串口助手验证(超详解)

    大家好 xff0c 我是小政 xff0c 一名自动化专业的在校学生 最近在学习利用opencv进行环境监测 xff0c 需要将获取到的数据通过通信协议传输给stm32 我选择使用wifi模块进行无线通信 xff0c 接下来我会将我从入门到掌
  • 【平衡小车制作】(二)电机驱动(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对平衡小车中的电机控制进行详细的讲解 xff0c 驱动一个电机最重要的就是给它一个PWM信号 xff0c PWM的概念 如何驱动电机及通过改变PWM占空比进行电机调速我会在本篇文章中进行详解 让每
  • 【平衡小车制作】(五)位置式PID、直立环与速度环概念(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对位置式PID算法 直立环 速度环等概念进行详细的讲解 xff0c 让每位小伙伴能够对这三个概念有更加清晰的理解 一 PID控制算法 PID控制 xff0c 即为对偏差进行比例 积分和微分控制 由
  • 【平衡小车制作】(七)串级PID调参及平衡成果展示(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对PID调参进行详细的讲解 xff0c 让每位小伙伴能够对比例 积分 微分三个参数如何调节有更加清晰的理解 一 调参步骤 确立机械中值直立环 xff08 内环 xff09 Kp极性 Kp大小 Kd
  • 第七章:总线

    7 1总线概述 总线概述 总线是一组能为多个部件分时共享的公共信息传送线路 共享是指总线上可以挂接多个部件 xff0c 各个部件之间相互交换的信息都可以通过这组公共线路传送 xff1b 分时是指同一时刻总线上只能传送一个部件发送的信息 总线
  • Jetson 系统监视程序Jtop及Jetson基本信息查询

    开启后的界面如下 xff1a 安装Jetson的监视程序 xff1a 了解安装的Jetpack版本是多少 xff1f 了解 GPU 的使用率 xff1f 了解Jetson机器工作在什么模式下 xff1f 了解CPU用了几个 xff1f 散热
  • MVC设计模式

    MVC模式 xff08 Model View Controller xff09 是软件工程中的一种软件架构模式 xff0c 把软件系统分为三个基本部分 xff1a 模型 xff08 Model xff09 视图 xff08 View xff
  • Docker常用基础命令

    目录 1 docker version 查看版本信息 2 docker info 查看docker的一些信息 3 docker search 镜像搜索 4 docker pull 拉取镜像到本地 5 docker push 推送本地的镜像到
  • 硬件基础之变频器&逆变器

    变频器 amp 逆变器工作原理 基本概念直流产生方波思路正弦波产生原理正弦波产生之制作脉冲正弦波产生之滤波 amp 平均 基本概念 逆变器 xff1a 直流电 xff08 DC xff09 转变为交流电 xff08 AC xff09 变频器
  • 硬件基础之STM32最小系统

    STM32 复位电路时钟电路SWD下载电路BOOT电路RTC时钟电源电路 复位电路 STM32为低电平复位 xff0c 上电瞬间电流可视为交流 xff0c 电容导通 xff08 充电过程 xff0c NRST为低电平 xff0c 两个机械周
  • 数据结构常用的结构体定义

    一 顺序表结构体定义 xff1a typedef struct int data maxsize int length Sqlist 二 单链表结构体定义 xff1a typedef struct LNode int data struct
  • Linux基础入门(常用指令总结)

    相信大家对Linux都不陌生 xff0c 本篇文章就详细介绍一些常用的Linux命令 目录 前言 一 Linux是什么 xff1f 二 常用命令 1 cd 切换文件夹 2 ls 查看目录内容 3 mkdir 创建文件夹 4 touch 创建
  • 第7章:OFDM 信道估计与均衡(2)

    第7章 xff08 2 xff09 内容如下 xff1a 一 瑞利衰落信道介绍二 OFDM经过多径衰落信道的误码率分析三 总结 本文对应的完整可运行代码下载地址 xff1a 123kevin456 OFDM 一 瑞利衰落信道介绍 第 xff
  • 阿里云ECS服务器ubuntu18.04图形界面安装配置

    先说一下我用的ECS配置 服务器配置 xff1a 2 vCPU 4 GiB 系统镜像 xff1a ubuntu18 04 xff08 64位 xff09 本文的配置方法在 ubuntu 16 04 上一样适用 1 安装图形化界面 网上一大堆
  • java多线程-进程与线程基础-1

    基本概念 进程 是并发执行的程序在执行过程中分配和管理资源的基本单位 xff0c 是一个动态概念 xff0c 竟争计算机系统资源的基本单位 每一个进程都有一个自己的地址空 间 xff0c 即进程空间或 xff08 虚空间 xff09 进程空