.NET/C#汇总 —— 多线程

1.根据线程安全的相关知识,分析以下代码,当调⽤test⽅法时i>10时是否会引起死锁?并简要说 明理由。

public void test(int i)
{lock(this){if (i>10){i--;test(i);}}
}

不会发⽣死锁,(但有⼀点int是按值传递的,所以每次改变的都只是⼀个副本,因此不会出现死锁。

但如果把int换做⼀个object,那么死锁会发⽣)。

2.描述线程与进程的区别?

 线程(Thread)与进程(Process)⼆者都定义了某种边界,不同的是进程定义的是应⽤程序与应⽤程序 之间的边界,不同的进程之间不能共享代码和数据空间,⽽线程定义的是代码执⾏堆栈和执⾏上下⽂的 边界。

⼀个进程可以包括若⼲个线程,同时创建多个线程来完成某项任务,便是多线程。

⽽同⼀进程中的不同线程共享代码和数据空间。

⽤⼀个⽐喻来说,如果⼀个家庭代表⼀个进程,在家庭 内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进⾏积累,同时也有权利对家庭财 富进⾏消费,当⾯对⼀个任务的时候,家庭也可以派出⼏个成员来协同完成,⽽家庭之外的⼈则没有办 法直接消费不属于⾃⼰家庭的财产。

3.Windows单个进程所能访问的最⼤内存量是多少?它与系统的最⼤虚拟内存⼀样吗?

这对于系 统设计有什么影响?

这个需要针对硬件平台,公式为单个进程能访问的最⼤内存量=2的处理器位数次⽅/2,⽐如通常情况 下,32位处理器下,单个进程所能访问的最⼤内存量为:232 /2 = 2G 。

单个进程能访问的最⼤内存量 是最⼤虚拟内存的1/2,因为要分配给操作系统⼀半虚拟内存。

4.using() 语法有⽤吗?什么是IDisposable?

有⽤,实现了IDisposiable的类在using中创建,using结束后会⾃定调⽤该对象的Dispose⽅法,释放资 源。

5.前台线程和后台线程有什么区别?

通过将 Thread.IsBackground 属性设置为 true,就可以将线程指定为后台线程 。

前台线程: 应⽤必须结束掉所有的前台线程才能结束程序,只要有⼀个前台线程没退出进程就不会⾃动 退出,当然线程是依附在进程上的,所以你直接把进程KO掉了的话⾃然所有前台线程也会退出。

后台线程: 进程可以不考虑后台直接⾃动退出,进程⾃动退出后所有的后台线程也会⾃动销毁。

6.什么是互斥?

当多个线程访问同⼀个全局变量,或者同⼀个资源(⽐如打印机)的时候,需要进⾏线程间的互斥操作来 保证访问的安全性。

7.如何查看和设置线程池的上下限?

线程池的线程数是有限制的,通常情况下,我们⽆需修改默认的配置。

但在⼀些场合,我们可能需要了 解线程池的上下限和剩余的线程数。

线程池作为⼀个缓冲池,有着其上下限。

在通常情况下

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 删除文件或文件夹命令(新手)

一、删除文件夹 rm -rf 路径/目录名 1 强制删除文件夹及其子文件。 二、删除文件/文件夹:rm 命令 rm 删除命令,它可以永久删除文件系统中指定的文件或目录。 rm [选项] 文件或目录 选项: -f:强制删除(force&am…

前端大屏项目适配方法

要在F11全屏模式下查看 方法一,rem font-size 动态设置HTML根字体大小 和 body 字体大小(lib_flexible.js) 将设计稿的宽(1920)平均分成 24 等份, 每一份为 80px。HTML字体大小就设置为 80 px&#xff…

SonarQube 9.9.4 LTS社区版安装

目标 安装个SonarQube社区版. 安装SonarQube9.9.4 LTS社区版 https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.4.87374.zip # 切换到安装目录 cd /opt # 下载安装包 sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube…

[管理者与领导者-160] :社交策略和智慧-3,如何用积极的语言表达他人的赞美,构建和谐的人际关系

目录 一、用积极的语言表达他人的赞美他人的重要性 1.1 消极语言的危害 1.2 批评性语言的危害 1.3 积极的语言表达他人的赞美他人的重要性 二、有哪些积极的赞美他人的语言? 2.1 有哪些消极性语言 2.2 有哪些积极性语言 2.3 有哪些批评性语言 2.4 有哪些赞…

C语言--结构体大小

基本数据类型占用的字节数分别为:char(1),short(2),int(4),long(4),long long(8),float(4),double(8)。 分析一下下面结构体占用的字节数。 struct A { int a; }; struct B { char a; int b; }; int main() { printf("sizeof(struct A)%d\n", sizeof(struct A));//测…

Nginx小册(博客笔记迁移)

nginx基础 1.常用命令 nginx -v #查看版本 ps -ef | grep nginx #输出linux进程、 nginx #启动nginx进程 nginx -s reload #重载配置 nginx -s stop # 停止进程 nginx -t # 检查是否有语法错误,以及配置文件地址2.nginx的配置文件 # 用户组的设置 windows上不生…

Java面试题:什么是Java的集合框架?详细举例说明常用的集合,及其应用场景

Java的集合框架(Java Collections Framework)是Java编程语言中提供的一套用于表示和操作集合的统一架构。它包含了一系列接口、类和算法,用于创建和操作集合对象,如列表、集合、映射等。这些集合对象在Java程序中广泛用于存储和组…

支持0V充电700MA线性锂电池充电芯片-YB4055SL

支持0V充电700MA线性锂电池充电芯片 描述: YB4055SL是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。其SOT 封装与较少的外部元件数目使得YB4055SL成为便携式应用的理想选择YB4055SL可以适合 USB 电源和适配器电源工作。 由于采用了内部PMOSFET架构&am…

微信小程序 uniapp+vue.js医疗在线问诊挂号系统4oy17

预约挂号系统的逐渐发展,进一步方便了广大用户,使其可以更方便、快捷地预约挂号,并且也有效地防止号贩子“倒号”,使用户预约挂号更公平,然而现有预约挂号系统或多或少有所欠缺 小程序前端框架:uniapp 小程…

AndroidAutomotive模块介绍(三)CarService服务

前言 上一篇文档总结 Android Automotive 框架的 APP 和 API 部分内容,本篇文档将会继续根据 Android Automotive 框架结构,总结 Framework 层 CarService 服务的内容。 本文档对 Android Automotive Framework 层服务将会按照如下顺序展开描述&#x…

windows搭建ftp服务器

安装iis 点击安装即可,搜索iis打开 创建ftp服务器 身份验证:只勾选匿名,不勾选基本,网上的很多教程会添加基本,导致的问题会出现浏览提需要输入账号密码的情况,这里为了方便大家更直观的感受FTP建立的过程&#xff0…

计算机网络技术-双绞线的制作与测试方法

目录 制作方法测试方法 待续、更新中 制作方法 (1)剥线 (2)去除外表皮 (3)分开双绞线 (4)拆分线对 (5)排列线序 (6)剪线 (7)安装RJ-4…

物理服务器与云服务器的租用对比

​ 物理服务器:每个基于 Web 的应用程序都依赖于一个服务器,该服务器提供网络中的数据存储,并可根据请求提供给客户端。例如,用户使用浏览器访问 Web 应用程序。服务器可确保托管客户端可以使用该硬件组件。与其他托管可能性相比&…

MySQL数据库max_allowed_packet参数

如上图所示的报错,我在提交接口的时候出现了这个错误: MySqlConnector.MySqlException:Error submitting 4MB packet;ensure max_allowed_packet is greater than 4MB.在MySQL数据库中,有一个参数叫max_allowed_packet,这个参数会…

nacos服务器挂了之后springboot/springcloud服务会挂吗?不会挂(顺便深入源码分析nacos配置中心客户端核心功能实现)

文章目录 nacos挂了之后服务会挂吗?不会挂(深入源码分析)展开nacos客户端源码找本地缓存配置相关文件客户端内存缓存客户端健康状态获取配置的实现 nacos挂了之后服务会挂吗?不会挂(深入源码分析) 展开nac…

云HIS医院管理系统源码,SaaS模式+Java云HIS系统融合B/S版开箱即用

云HIS医院管理系统源码,SaaS模式Java云HIS系统融合B/S版开箱即用 一、云HIS系统简介 SaaS模式Java版云HIS系统,在公立二甲医院应用三年,经过多年持续优化和打磨,系统运行稳定、功能齐全,界面布局合理、操作简便。 云H…

软件供应链安全:寻找最薄弱的环节

在当今的数字时代,软件占据主导地位,成为全球组织业务和创新的支柱。它是差异化、项目效率、成本降低和竞争力背后的驱动力。软件决定了企业如何运营、管理与客户、员工和合作伙伴的关系,以及充分利用他们的数据。 挑战在于,当今…

Java技术学习|SpringBoot面试篇

学习材料声明 黑马程序员黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关 经过了基础知识后端开发前端开发,终于到了面试篇。 前置知识 1.ApplicationContextInitializer 首先,SpringBoot…

CentOS7 boa服务器的搭建和配置

环境是CentOS7,但方法不局限于此版系统,应该是通用的。 具体步骤如下: 1. 下载boa源码 下载地址: Boa Webserver 下载后,进入压缩包所在目录,进行解压: tar xzf boa-0.94.13.tar.gz 2. 安装需要的工具b…

【go-zero】go-zero 整合MQTT协议 | 实现对MQTT的操作

一、go-zero标准项目配置 完成下面三个步骤就可以直接在svcCtx中使用MQTT 我们使用官方的MQTT库:https://github.com/eclipse/paho.mqtt.golang 1、 设置 YAML 1.1、配置如下: 除了Broker、Port、User、Pass、Ca 其余都为可选项 Mqtt:Broker: mqtt3.xxx.com# Port: 28883…