当前位置: 首页 > news >正文

进程线程的关系

举个例子   滑稽老师吃100只鸡

如何加快滑稽老师吃鸡的效率??

有一个方案,搞两个房间,两个滑稽老师  一个滑稽吃50只鸡,速度一定会大幅度增加

多进程的方案  创建新的进程  就需要申请更多的资源(房间和桌子)

另一个方案,使用多线程

房间和桌子还是那些,但是吃鸡的主角多了一个(这种方案,资源开销更小)

现在我们有两个滑稽,能够提高效率,如果引入更多的滑稽呢?

现在引入更多的线程,每个滑稽吃的鸡更小了,速度更快了

 (与之对应的,如果搞四套房间,成本就更高了)

此时这些滑稽老师,共享的同一份资源

引入的滑稽,是越多越好吗??
当引入的线程,达到一定数量之后,在继续尝试引入新的线程,好像就没有办法提升了

桌子坐不下了

当线程数量太多的时候,线程之间就会相互竞争CPU的资源(CPU核心数是有限的)

非但不会提高效率,反而还会增加调度 的开销

多线程问题还有一个重要的问题,线程之间,可能会打架

比如,一号滑稽和2号滑稽看上了同一个鸡大腿,同时伸手去拿,谁能拿到???存在诸多变数!!!!!!!线程之间起了冲突,就可能会导致代码中出现一些逻辑上的错误(线程安全问题)

多线程这种方式,不太好驾驭,主要还是因为这个东西,有一定的复杂

多线程还有一个问题,共享资源也会有副作用

1号和2号抢鸡大腿的时候,1号抢到了,2号没抢到,2号滑稽很生气

一个线程如果抛出异常,并且没有处理好,就可能会导致整个进程被终止

小结:

1,进程是包含线程的

2,每个线程,也是一个独立的执行流,可以执行一些代码,并且单独的参与到CPU的调度中。(状态,上下文,优先级,记账信息,每个线程都有自己的一份)

3.每个线程,有自己的资源,进程中的线程共用这一份资源(内存空间和文件描述符表)

进程是资源分配的基本单位,线程是调度执行的基本单位

4.进程和进程之间,不会相互影响,如果同一个进程中的某个线程,抛出异常,是可能会影响到其他线程,会把整个进程中的所有线程都异常终止

5,线程也不是越多越好,要能够合适。如果线程太多了,调度开销可能非常明显。

6.同一个进程中的线程之间,可能会相互干扰,引起线程安全问题

Q:如果面试官让你,转前端?转android?转测试行不行???

必须行!!!!!

 多线程编程

写代码的时候,可以使用多进程进行并发编程,也可以使用多线程进行并发编程

在Java中 不太推荐 很多和多进程编程相关的api,在Java标准库中,都没有提供

多线程在并发编程的时候,效率更高(频繁创建销毁的时候)

尤其是对于Java进程,是要启动Java虚拟机的

启动Java虚拟机,这个事情的开销更大

搞多个Java进程就是多个Java虚拟机

系统提供了多线程编程的api ,java标准库,把这些api封装了在代码中就可以使用了

java中提供的api,Thread这样的类

Demo 实例

看一些第三方库文档   当开始上手,就应该要找demo/tutor/example/get  strat

相关文章:

进程线程的关系

举个例子 滑稽老师吃100只鸡 如何加快滑稽老师吃鸡的效率?? 有一个方案,搞两个房间,两个滑稽老师 一个滑稽吃50只鸡,速度一定会大幅度增加 多进程的方案 创建新的进程 就需要申请更多的资源(房间和…...

一些 VLP 下游任务的相关探索

目录 一、Image-Text Retrieval (ITR , 图像文本检索) 任务目的: 数据集格式 训练流程 evaluation流程 实际使用推测猜想 二、Visual Question Answering (VQA , 视觉问答) 任务目的 数据集格式 训练流程 demo以及评估流…...

【opencv】示例-pca.cpp PCA图像重建演示

// 加载必要的头文件 #include <iostream> // 用于标准输入输出流 #include <fstream> // 用于文件的输入输出 #include <sstream> // 用于字符串的输入输出流操作#include <opencv2/core.hpp> // OpenCV核心功能的头文件 #include "o…...

C语言中的编译和链接

系列文章目录 文章目录 ​编辑 系列文章目录 文章目录 前言 一、 翻译环境和运行环境 二、 翻译环境 2.1 编译 2.1.1 预处理 2.1.2 编译 2.1.2.1 词法分析 : 2.1.2.2 语法分析 2.1.2.3 语义分析 2.1.3 汇编 2.2 链接 三、运行环境 前言 在我们平常的写代码时&#xff0c;我们很…...

如何将三方库集成到hap包中——通过IDE集成cmak构建方式的C/C++三方库

简介 cmake构建方式是开源三方库的主流构建方式。DevEco Studio目前以支持cmake的构建方式。本文将通过在IDE上适配cJSON三方库为例讲来解如何在IDE上集成cmake构建方式得三方库。 创建工程 在开发进行三方库适配以及napi接口开发前&#xff0c;我们需要创建一个三方库对应的…...

Towards Street-Level Client-Independent IP Geolocation(2011年)(第二部分)

被引次数:306 Wang Y, Burgener D, Flores M, et al. Towards {Street-Level}{Client-Independent}{IP} Geolocation[C]//8th USENIX Symposium on Networked Systems Design and Implementation (NSDI 11). 2011. 接着Towards Street-Level Client-Independent IP Geolocati…...

软件测试过程和测试生命周期

众所周知&#xff0c;软件生命周期包括&#xff0c;需求阶段、设计阶段、设计构建阶段、测试周期阶段、最后测试、实施阶段、最后运维和维护验收。每个阶段都需要在软件开发的生命周期中从前一阶段交付。需求转化为设计&#xff0c;设计转化为开发和开发成测试&#xff0c;经过…...

python-study-day1

ps&#xff1a;前言 可做毕设&#xff0c;html&#xff0c;web&#xff0c;app&#xff0c;小程序&#xff0c;bug修改&#xff0c;可加急 作者自述 作为一名前端开发工程师&#xff0c;这个大环境不好的情况下&#xff0c;我试过我前端接单子但是没有后端&#xff0c…...

【Apache2】彻底删除 Apache2 服务器

要彻底删除 Apache2 服务器&#xff0c;需要卸载 Apache2 软件包并删除其配置文件和数据文件。在 Ubuntu 上&#xff0c;可以按照以下步骤来完成&#xff1a; 停止 Apache2 服务&#xff1a; sudo systemctl stop apache2卸载 Apache2 软件包&#xff1a; sudo apt-get purge a…...

C#:成绩等级转换

任务描述 本关任务&#xff1a;给出一百分制成绩&#xff0c;要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E&#xff0c;如果输入数据不在0~100范围内&#xff0c;请输出一行&#xff1a;“Score is error!”…...

每日OJ题_01背包③_力扣494. 目标和(dp+滚动数组优化)

目录 力扣494. 目标和 问题解析 解析代码 滚动数组优化代码 力扣494. 目标和 494. 目标和 难度 中等 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; …...

vue3+element plus图片预览点击按钮直接显示图片的预览形式

1 需求 直接上需求&#xff1a; 我想要直接点击下面这个“预览”按钮&#xff0c;然后呈现出预览图片的形式 ok&#xff0c;需求知道了&#xff0c;下面让我们来看看如何实现吧 ~ 2 实现 template部分 <el-buttontype"primary"size"small"click&qu…...

GAMS104 现代游戏引擎 2

渲染的难点可以分为一下三部分&#xff1a;如何计算入射光线、如何考虑材质以及如何实现全局光照。 渲染的难点之一在于阴影&#xff0c;或者说是光的可见性。如何做出合适的阴影效果远比想象中要难得多&#xff0c;在实践中往往需要通过大量的技巧才能实现符合人认知的阴影效…...

spring boot学习第十七篇:OAuth2概述及使用GitHub登录第三方网站

0. 导言 我们在浏览器上可以访问成百上千个网站&#xff0c;使用每个网站的服务一般都要先注册账号&#xff0c;那么我们为了更好地记忆&#xff0c;一般都会在多个网站使用相同的账号和密码进行注册。那么问题就来了&#xff0c;如果在你注册的网站中有某些个网站的系统设计不…...

基于springboot的电影评论网站系统源码数据库

基于springboot的电影评论网站系统源码数据库 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了电影评论网站的开发全过程。通过分析电影评论网站管理的不足&#xff0c;创建了一个计算机管理电影评论网站的方案。文…...

javaScript手写专题——实现instanceof/call/apply/bind/new的过程/继承方式

目录 原型链相关 手写instanceof 实现一个_instance方法&#xff0c;判断对象obj是否是target的实例 测试 手写new的过程 实现一个myNew方法&#xff0c;接收一个构造函数以及构造函数的参数&#xff0c;返回构造函数创建的实例对象 测试myNew方法 手写类的继承 ES6&…...

C++11 新特性:tuple 元组

std::tuple是 C11 中引入的一个非常强大的类型&#xff0c;它允许将多个类型不同的值&#xff0c;组合成单一对象。 std::tuple非常适合用于那些需要返回多个值的场景&#xff0c;而且它的灵活性和通用性使得其成为现代 C 编程中不可或缺的一部分。下面&#xff0c;我们将探讨…...

最齐全,最简单的免费SSL证书获取方法——实现HTTPS访问

一&#xff1a;阿里云 优势&#xff1a;大平台&#xff0c;在站长中知名度最高&#xff0c;提供20张免费单域名SSL证书 缺点&#xff1a;数量有限&#xff0c;并且只有单域名证书&#xff0c;通配符以及多域名没有免费版本。并且提供的单域名证书只有三个月的期限。 二&#…...

c语言->贪吃蛇实战技巧结合EasyX简单实现页面管理(简单实现)

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 1. 游戏背景 贪吃蛇是久负盛名的游戏&#xff0c;它也和俄罗斯⽅…...

C语言-详解内存函数

文章目录 1.memcpy使用和模拟实现1.1 memcpy函数的使用规则1.2 memcpy函数的使用1.2 模拟实现memcpy函数 2.memmove 函数的使用和模拟实现2.1 memmove 函数使用规则2.2 memmove函数的使用2.3 模拟实现memmove函数2.3.1 从后往前移2.3.2 从前往后移 2.4 算法实现2.4.1 从前往后移…...

【核心完整复现】基于目标级联法的微网群多主体分布式优化调度

1 主要内容 之前发布了华电学报的复现程序《基于目标级联法的微网群多主体分布式优化调度》&#xff0c;具体链接为【防骗版】基于目标级联法的微网群多主体分布式优化调度&#xff0c;虽然对模型及结果进行了复现&#xff0c;但是部分模型细节和参数并没有完全实现&#xff0…...

Mac下安装NVM,NVM安装Node(附带NPM)

1、理解NVM、node、NPM 什么是NVM&#xff1f; NVM: Node.js Version Manager&#xff0c;用来管理 node 的版本。 什么是 Node.js? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js使用了一个事件驱动、非阻塞式I/O的模型&#xff08; Node.js的特性&…...

java之变量的作用域

在java中&#xff0c;变量需要像其他编程语言中先定义&#xff0c;再使用。但并不是定义好就能用。需要对变量定义一个作用范围才能使用&#xff0c;这个作用范围称为作用域。 在java程序中&#xff0c;变量会定义在一个花括号内&#xff0c;花括号内的区域就是作用域。 比如…...

CentOS 7软件安装全攻略:YUM命令详解与实战

在CentOS 7中&#xff0c;软件安装主要依赖于其强大的包管理器——YUM&#xff08;Yellowdog Updater Modified&#xff09;。YUM可以自动解决软件包之间的依赖关系&#xff0c;使得软件的安装、更新和卸载变得简单而高效。本文将详细介绍CentOS 7中软件安装的相关命令、选项和…...

达梦关键字(如:XML,EXCHANGE,DOMAIN,link等)配置忽略

背景&#xff1a;在使用达梦数据库时&#xff0c;查询SQL中涉及XML,EXCHANGE,DOMAIN,link字段&#xff0c;在达梦中是关键字&#xff0c;SQL报关键词不能使用的错误。 解决办法&#xff1a; 配置达梦安装文件E:\MyJava\dmdbms\data\DAMENG\dm.ini 忽略这些关键词&#xff0c;…...

2024/4/11 直流电机调速/PWM

一、直流电机简介和PWM原理 直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极&#xff0c;当电极正接时&#xff0c;电机正转&#xff0c;当电极反接时&#xff0c;电机反转 直流电机主要由永磁体&#xff08;定子&#xff09;、线圈&#xff08;转子&…...

贝乐虎儿歌v6.8.0解锁高级版亲子学习儿歌

软件介绍 贝乐虎儿歌免费版app&#xff0c;出自乐擎网络的创意工坊&#xff0c;专为孩子们雕琢了一系列富含创意的动画儿歌内容。这款app通过贝乐虎兄弟的可爱形象&#xff0c;让孩子们在愉快的观看中接触到各种儿歌和故事。不仅如此&#xff0c;app还巧妙地将古诗、英语等学习…...

计算机网络技术-RIP、0SPF和BGP协议的工作原理和应用

目录 RIP (Routing Information Protocolv&#xff09;路由信息协议OSPF(Open Shortest Path First) 开放式最短路径优先BGP( Border Gateway Protocol)边界网关协议 RIP (Routing Information Protocolv&#xff09;路由信息协议 RIP协议 是 TCP/IP环境中开发的第一个路由选择…...

机器学习——自动驾驶

本章我们主要学习以下内容: 阅读自动驾驶论文采集数据根据论文搭建自动驾驶神经网络训练模型在仿真环境中进行自动驾驶 论文介绍 本文参考自2016年英伟达发表的论文《End to End Learning for Self-Driving Cars》 📎end2end.pdf...

Android 14 vold 分析(2)VolumeManager 和 NetlinkManger

3. VolumeManager::Instance() 和 VolumeManager::start() system/vold/VolumeManager.cpp 3.1 Instance()没啥好说的 非常简单 112 VolumeManager* VolumeManager::Instance() {113 if (!sInstance) sInstance new VolumeManager();114 return sInst…...

wordpress访问满/陕西网站推广公司

Django之强大的Form功能 Form Form的验证思路 前端&#xff1a;form表单 后台&#xff1a;创建form类&#xff0c;当请求到来时&#xff0c;先匹配&#xff0c;匹配出正确和错误信息。 Django的Form验证实例&#xff1a; 创建project&#xff0c;进行基础配置文件配置 STATIC_U…...

石家庄市建设局质监站网站/网络站点推广的方法有哪些

前言 在SpringBoot中使用自定义注解、aop切面打印web请求日志。主要是想把controller的每个request请求日志收集起来&#xff0c;调用接口、执行时间、返回值这几个重要的信息存储到数据库里&#xff0c;然后可以使用火焰图统计接口调用时长&#xff0c;平均响应时长&am…...

网页设计师用什么软件/如何做seo搜索引擎优化

waitpid系统调用在Linux函数库中的原型是&#xff1a; #include <sys/types.h> #include <sys/wait.h> pid_t waitpid(pid_t pid,int *status,int options) 从本质上讲&#xff0c;系统调用waitpid和wait的作用是完全相同的&#xff0c;但waitpid多出了两个可由用户…...

想用自己电脑做服务器做个网站吗/网站免费搭建

本文文章接作者的&#xff1a;3种方法带你玩自定义Android Gradle插件&#xff0c;属于自定义插件的实战篇&#xff0c;这个实战也是比较有意义的&#xff0c;可以说让我受到启发的一篇文章。我之前鼓励大家去上线个人app&#xff0c;在上市场的过程中&#xff0c;你会发现很多…...

网站建设一六八互联/东莞搜索优化

本文授权转载自学术头条作者&#xff1a;赵雅琦前段时间&#xff0c;浙江高考满分作文《生活在树上》因为晦涩难懂的内容&#xff0c;刷爆了各种社交媒体。外行人看热闹&#xff0c;内行人看门道&#xff0c;大神们透过现象看本质。一般来说&#xff0c;高考作文可以通过批量化…...

网站跳转代码 html/百度收录提交入口网址是什么

在前面几篇文章我们已经对FreeRTOS任务API和任务调度原理进行了相对深入的分析 这篇文章主要针对任务与任务之间的交互&#xff0c;信息传递相关的API组件进行分析目录一、任务通知基本介绍1、FreeRTOS 任务通知函数2、CMSIS封装后任务通知函数2.1 osSignalSet2.2 osSignalWait…...