C#高级 05线程状态

(1)进程和线程之间的关系

进程可以理解为一个应用,那么线程则可以看为一个进程中的多个执行单元(一个进程可以启动多个线程);

(2)进程之间如何通信

1.管道
2.消息队列
3.信号量
信号量不同于一般的ipc,它是一个·计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通行数据。
信号量用于进程间同步,若要在进程传递数据需要结合·共享内存
信号量基于操作系统操作系统的pv操作,程序对信号量的操作都是原子操作
每一次信号量的pv操作不仅仅限于对信号量值的+1或-1,而且可以加减任意正整数
支持信号量组
4.共享内存
共享内存是最快的一种进程间通信 IPC(Inter-Process Communication),因为进程直接对内存进行读取。
因为多个进程可以同时操作,所以需要进行同步。
信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。

(3)线程之间的通信

两个进程间的线程同学,相对于进程通信。
一个进程中的两个线程通信:

1.互斥锁
	mutex;
	lock_guard(在构造函数中加锁,在析构函数中解锁)
	unique_lock 自动加锁,解锁
2.读写锁
	shared_lock
3.信号量

(4)mian方法结束,程序是不是也结束了?

mian函数结束只是主线程结束了,主栈空了,其他栈(线程)可能还在压栈弹栈。

(5)单核cpu可以做到真正的多线程吗?

单核cpu在一个时间点只能处理一个事情,但是由于cpu运行速度极快,可以在多个线程之间频繁执行切换操作,从而给人的感觉是:多件事情同时在做!!

(6)什么是多线程并发?

t1 线程执行t1的,t2线程执行t2的,两者互不干扰,这叫做多线程并发

(7)线程的生命状态

在这里插入图片描述
新建状态(刚new出来线程对象)—(start())—>就绪状态;
就绪状态—(jvm调度)—>运行状态—(调用run运行结束后)—>死亡状态;
运行状态—(遇到阻塞事件,调用sleep,join方法)—>阻xianh塞状态;

join方法介绍:A线程调用了b线程的join()后,会等待b线程执行完毕,
在b线程没有执行完毕前,a线程会一直处于阻塞状态。举了个例子如下所示:
在这里插入图片描述

  • 线程安全:多个线程去访问同一个对象是,如果不考虑对应环境下的调度和交替执行,也不需
    要额外的同步,或者在调用方法进行任何其他操作,调用这个对象的任何行为都可以获得正确
    结果,那么这个对象就是线程安全的
  • 线程不安全:不提供数据访问保护,有可能出现多个线程先后更改数据造成多的数据时脏数据
  • 简单来说就是:当一个对象存在多个线程同时运行时,每个线程单次运行结果是一致的,但是当
    多个线程同时运行时就会出现结果不一致的现象。

(7)线程和对象的关系

  • 对象和线程没有直接关系,对象是类的实例,线程是多任务操作系统调度的产物,当线程具有时
    间片过后操作系统赋予它运行的活力;
  • 对象是通过线程的执行来改变其数据的,对象必定属于某个线程或者进程,如果对象不在线程中,
    那么它还没有成为对象,只能是类。

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

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

相关文章

vue 实现拐弯时间线,弯曲时间线,弯曲任务步骤条

需求&#xff1a; 实现可拐弯的步骤条功能 实现后效果如下&#xff1a; 代码部分&#xff1a; 创建步骤条组件Steps.vue <template><div><divstyle"width: 100%; display: flex; position: relative; margin-top: 20px"><div style"wi…

Hive详解、配置、数据结构、Hive CLI

一、Hive 认识 1. Hive 应用 问题&#xff1a;公司的经营状况&#xff1f; 主题一&#xff1a;财务现金流指标1.1&#xff1a;净现金流入/流出量指标1.2&#xff1a;现金转换周期预算执行状况指标2.1&#xff1a;预算内成本控制指标2.2&#xff1a;预算与实际支出的差异 主题…

进程与线程介绍

进程与线程介绍 一、介绍1, 定义2&#xff0c;通讯方式2.1 进程间的通讯方式&#xff0c;以及优缺点2.1.1 管道&#xff08;1&#xff09;无名管道&#xff08;PIPE&#xff09;&#xff08;2&#xff09;有名管道(FIFO) 2.1.2 消息队列&#xff08;Message Queue&#xff09;2…

【复盘】2023年终总结

大家好&#xff0c;我是qxlx 2023年马上就要结束了&#xff0c;在此周末空闲时间进行整体复盘一下2023年关于自己的生活、工作、学习进度&#xff0c;以此进行记录。 01 工作 粗略算起来&#xff0c;来北京已经3年之久&#xff0c;那时候还是一个懵懵懂懂的学生&#xff0c;…

Java学习苦旅(十七)——栈和队列

本篇博客将详细讲解Java中的栈和队列。 文章目录 栈概念Java中Stack常用方法代码实现 队列概念队列常用方法对比QueueDeque 代码实现Queue 结尾 栈 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一…

Android混淆那些事

前言 作为一个Android开发&#xff0c;大家或多或少都有一些关于混淆的了解&#xff08;毕竟披个纱布也比裸奔要好的多吧&#xff09;。混淆的概念虽然容易理解&#xff0c;但相信大多数开发可能还是在网上搜索通用配置后通过C-V大法接入到自己的项目中&#xff0c;这也使得混…

50、实战 - 利用 conv + bn + relu + add 写一个残差结构

上一节介绍了残差结构,还不清楚的同学可以返回上一节继续阅读。 到了这里,一个残差结构需要的算法基本都介绍完了,至少在 Resnet 这种神经网络中的残差结构是这样的。 本节我们做一个实战,基于之前几节中手写的 conv / bn 算法,来搭建一个残差结构。其中,relu 的实现和…

【linux】ufw 的基本使用

碎碎念 所有的云平台的网络流量的进出基本上有三层&#xff0c;首先是虚拟网的流量控制&#xff0c;一般是通过子网访问控制列表来控制vpc也好子网也好的流量出入&#xff0c;其次是安全组控制一层&#xff0c;通过安全组规则控制一类/一组主机&#xff08;指EC2/ECS/VM/CE这些…

SpringBoot整合ElasticSearch实现CRUD操作

本文来说下SpringBoot整合ES实现CRUD操作 文章目录 概述项目搭建ES简单的crud操作保存数据修改数据查看数据删除数据 本文小结 概述 SpringBoot支持两种技术和es交互。一种的jest&#xff0c;还有一种就是SpringData-ElasticSearch。根据引入的依赖不同而选择不同的技术。反正作…

SQL必知必会笔记(5~8章)

第五章 高级数据过滤 本章示例表为transcript成绩表&#xff0c;数据库软件选用SQLITE3&#xff0c;具体如下 1、高级过滤也是通过where条件子句实现&#xff0c;辅以and、or、in、not进行实现 2、and语句&#xff1a;and连接的多个条件为与的关系&#xff0c;例如 SELECT * FR…

洗地机怎么选?哪款洗地机好用?

选择洗地机前&#xff0c;我们需要对自己购买洗地机的需求做一个清洗的判断&#xff0c;吸尘器和扫地机智能解决地面基本的清洁问题&#xff0c;作为新兴的清洁工具洗地机越来越受大家的喜欢&#xff0c;洗地机的品类很多&#xff0c;洗地机到底该买哪款呢?我们先来看看挑选洗…

利用MATLAB绘制折线图

x20:20:140;%x轴上的数据&#xff0c;第一个值代表数据开始&#xff0c;第二个值代表间隔&#xff0c;第三个值代表终止a[0.85, 2.2, 3.45, 2.65, 1.5, 1.9, 1.25]; %a数据y值plot(x,a,-*b); %线性&#xff0c;颜色&#xff0c;标记 axis([0,160,0,4]) %确定x轴与y轴框图大小 …

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分&#xff0c;主要用于管理和限制对系统资源&#xff08;如数据、应用程序等&#xff09;的访问。授权控制用户可访问和操作的系统资源&#xff0c;而访问控制技术则负责在授权的基础上&#xff0c;确保只有经过授权的用户才能访问…

K8S集群部署MySql

挂载MySQL数据卷 在k8s集群中挂载MySQL数据卷 需要安装一个NFS。 在主节点安装NFS yum install -y nfs-utils rpcbind 在主节点创建目录 mkdir -p /nfs chmod 777 /nfs 更改归属组与用户 chown -R nfsnobody:nfsnobody /nfs 配置共享目录 echo "/nfs *(insecure,rw,s…

半导体设备系列:半导体制造产能扩张,设备零部件需求旺盛

近年来国内半导体制造产能不断扩张&#xff0c;半导体设备厂商加速成长。我们认为下游发展将拉动上游本地化配套需求&#xff0c;半导体设备零部件迎来高增长阶段。 摘要 半导体设备零部件包含密封圈、EFEM、射频电源、静电吸盘、硅电极、真空泵、气体流量计、喷淋头等产品&a…

如何做好档案数字化前的鉴定工作

要做好档案数字化前的鉴定工作&#xff0c;可以按照以下步骤进行&#xff1a; 1. 确定鉴定目标&#xff1a;明确要鉴定的档案的内容、数量和性质&#xff0c;确定鉴定的范围和目标。 2. 进行档案清点&#xff1a;对档案进行全面清点和登记&#xff0c;包括数量、种类、状况等信…

【稳定检索|投稿优惠】2024年创新设计与经济发展国际学术会议(IACLDED 2024)

2024年创新设计与经济发展国际学术会议(IACLDED 2024) 2024 International Academic Conference on Innovative Design and Economic Development(IACLDED) 一、【会议简介】 2024年创新设计与经济发展国际学术会议(IACLDED 2024)&#xff0c;将于繁华的成都盛大召开。本次会议…

Vue3 使用路由 Router

Vue3 使用路由 Router 之前几篇博文说了一下 vue 的基本语法和 vue 的传参&#xff0c;今天这篇博文稍微说一下 vue3 里面使用路由。 介绍 众所周知&#xff0c;vue 是用来构建单页面应用的前端框架&#xff0c;大于大多数此类型应用来讲&#xff0c;都推荐使用官方支持的 vue…

阿赵UE学习笔记——6、免费资源获取

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   接下来准备要往UE引擎里面放美术资源了。美术资源可以自己做&#xff0c;不过也有一些免费的资源可以供我们使用的&#xff0c;这里介绍一些获得免费美术资源的方法。 一、Quixel 1、Quixel网站下载 Quixel资源库&#…

小H靶场笔记:DC-3

DC-3 January 3, 2024 4:11 PM Tags&#xff1a;Joomla owner&#xff1a;只惠摸鱼 信息收集 探测靶机ip&#xff1a; 192.168.199.133 nmap 扫描端口、 系统版本 漏洞 发现只有80端口开发&#xff0c; 且有cve-2017-8917漏洞存在是Joomla的SQL注入漏洞 Joomla版本为3.7.0…