JavaEE 多线程01

为什么引入多线程?

首先进程已经能很好的完成多任务这个情景下的并发编程了,那为什么又引入多线程呢?

这是因为在一些情景下,我么需要大量的创建和销毁进程来完成一些任务,此时多进程对系统的开销就会很大了.

假设有这样一个场景,服务器同时接收到很多个服务请求,这个时候服务器就会创建多个进程来处理这些请求,处理完成之后就要摧毁这个请求,这个时候就需要大量的创建和销毁对应的进程了,这样对服务器的cpu,硬盘,内存,带宽都会造成很多的占用.这个时候多进程表现的就不尽人意了.

这个时候我们就引入了多线程,你可以理解线程为一种轻量级的进程,线程在能完成以上情景之外,减小了创建的开销,保持了独立调度的特性,这样在支持并发的同时,减去了创建和销毁的开销!

注:线程是系统调度的基本单位,进程是系统分配资源的基本单位.

那么,线程是怎么做到这一点的呢?

线程的创建开销 

线程和进程的描述一样是使用一个pcb来描述的,一个进程其实有多个pcb,这就是一个线程组,这里的线程在内存指针和文件操作符表等上是共用一个空间的,只有在其他的pid等是不同的,由于文件指针相同,所以只有在第一个线程的创建的时候是需要内存开销的,其他的时候都开销非常小,你可以理解为只有创建第一个线程的时候从系统分配资源,后续都直接使用之前分配好的资源即可.也不是随便两个线程都是"共享空间的",只有线程组内的线程才共享一个空间,而这个线程组可以理解为是进程的一部分.

进程和线程的区别

这是一个经典的问题,我们来讨论一下

1.每个进程有自己的资源,进程之间相互不影响,而线程之间有一些资源是共享的,比如文件描述符表和内存指针等.进程是cpu分配资源的基本单位,线程是cpu调度的基本单位.

2.进程之间相互独立运行,线程之间可能相互影响,可能一个线的崩溃导致一系列线程的异常终止

3.同一个进程中的线程可能相互干扰导致线程安全问题.

4.线程不是越多越好的,当线程超过十个之后对性能的提升就不明显了,调度开销可能就会越发明显

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/179541.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据挖掘 K近邻

什么时候用K近邻? 交叉验证的时候。最常见的交叉验证方法是K折交叉验证,其中数据集被均匀分成K个子集,称为折,然后执行K次训练和测试,每次选择不同的折作为测试集,其余的作为训练集。最后,将K次…

windows11快速输入时间和日期

windows11快速输入时间和日期 〇、赶时间的看这里 任务栏微软输入法图标右键 | 设置 | 词库和自学习 | 用户自定义短语 |添加或编辑自定义短语| 添加日期设置 %yyyy%-%MM%-%dd%时间设置 %yyyy%-%MM%-%dd% %HH%:%mm%:%ss%-------------------------------------------------…

ROS1创建自定义服务并使用

1.首先在功能包创建一个srv文件夹 如上图所示,vehicle_control是我的功能包,创建一个srv文件夹 2.使用touch指令创建服务文件 touch Ranging.srv3.在文件内输入服务数据 横线代表分割符,上面的是客户端发送的数据,下面是服务器…

【开源】基于Vue.js的民宿预定管理系统

项目编号: S 058 ,文末获取源码。 \color{red}{项目编号:S058,文末获取源码。} 项目编号:S058,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色…

NX二次开发UF_CAM_set_clear_plane_data 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_clear_plane_data Defined in: uf_cam_planes.h int UF_CAM_set_clear_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 De…

Altium Designer学习笔记9

忽视了一个最大的问题,就是元器件的封装,不应该是根据AD系统的封装走,而应该是根据立创商城上的规格书,确认每个封装的大小,画出封装图,然后才是布局和走线。 1、确认电容的封装采用0805,贴片电…

360:流氓or保家卫国的勇士?

你曾用过360吗,这个在国内名声不好的杀毒软件,却是令国外黑客闻风丧胆的存在。 首先,在电脑病毒刚兴起的年代,杀毒软件是要收费的,当时盛行的瑞星和金山就是采用的付费模式,而就在2006年,奇虎…

C++三大特性——继承

目录 一.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符​编辑 1.2.3继承基类成员访问方式的变化 二.基类和派生类对象赋值转换 三.继承中的作用域 四.派生类的默认成员函数 五.继承与友元 六.继承与静态成员 一.继承的概念及…

计算机网络之数据链路层

一、概述 1.1概述 物理层发出去的信号需要通过数据链路层才知道是否到达目的地;才知道比特流的分界线 链路(Link):从一个结点到相邻结点的一段物理线路,中间没有任何其他交换结点数据链路(Data Link):把实现通信协议的硬件和软件…

SpringBoot集成七牛云OSS详细介绍

📑前言 本文主要SpringBoot集成七牛云OSS详细介绍的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&a…

电脑序列号查询

电脑序列号是厂商给每台电脑分配的一个产品识别码,也称为S/N(Serial Number)。主要用来查询电脑的出厂日期、保修状态、生产产地、产品配置等信息。电脑序列号查询有以下几种方法: 1、电脑机箱外壳; 2、系统信息/命令…

TransFusionNet:JetsonTX2下肝肿瘤和血管分割的语义和空间特征融合框架

TransFusionNet: Semantic and Spatial Features Fusion Framework for Liver Tumor and Vessel Segmentation Under JetsonTX2 TransFusionNet:JetsonTX2下肝肿瘤和血管分割的语义和空间特征融合框架背景贡献实验方法Transformer-Based Semantic Feature Extractio…

基于Haclon的Blob分析

任务要求: 请用BLOB分析的方法计算图中所有灰度值在120和255之间的像素构成的8连通区域的面积与中心点坐标。 Blob基础: 分析过程:首先获取图像,然后根据特征对原始图像进行阈值分割(区分背景像素和前景像素&#xf…

allegro画封装时使用坐标指令无效

使用坐标指令时显示:“Pick is outside the extent of the drawing…pick again” 这是因为你放的引脚已经超出你这个绘制界面的定义尺寸,需要到Setup->Design pararmeters…里面去将图幅改大一点,如下图所示: 然后点击Design…

office 365企业版安装教程

1.下载所需工具(防火墙和防毒软件记得关闭) 下载链接:所需文件 2.安装激活office 1.安装 office tool plus 2.已安装过office 先进行office的移除,再进行未安装office的步骤进行 3.未安装过office 1.设置部署 按照以下来进行安…

工业I/O模块的功能和应用介绍

在工业领域中,不同的设备常常适配不同的通信协议,不同的协议之间无法直接互通,导致现场实施过程中困难重重。工业io模块可以将各种现场信号转化为数字信号,然后传输给控制器进行处理,实现不同设备之间的互通&#xff0…

梁培强:塑造下一代投资高手

在当前全球经济动荡和金融市场快速变化的背景下,梁培强的投资教育计划不仅仅是一套课程,它是对传统投资理念的深度挑战和革新。梁培强,拥有超过二十年金融行业经验的资深分析师,正在引领一场投资者教育的变革,旨在培养…

MongoDB——索引(单索引,复合索引,索引创建、使用)

MongoDB索引 官方文档 https://docs.mongodb.com/manual/indexes/#create-an-index 默认索引 _id index Mongodb 在 collection 创建时会默认建立一个基于_id 的唯一性索引作为 document 的 primarykey,这个 index 无法被删除 单个字段索引 单字段索引是 Mongo…

2023 年 亚太赛 APMCM (B题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 问题一: 建立没有作物的玻璃温室内的温度和风速分…

【用unity实现100个游戏之16】Unity中程序化生成的2D地牢4(附项目源码)

文章目录 最终效果前言素材按程序放置物品放置玩家和敌人控制主角移动参考源码完结 最终效果 前言 本期紧跟着上期内容,主要实现在地牢中生成物品、放置玩家和敌人。 素材 物品素材: https://itch.io/c/1597630/super-retro-world 按程序放置物品 …