文章目录

  • 66. 程序什么时候应该使用多线程,什么时候单线程效率高?
  • 67. 死锁的原因和避免
    • 死锁的避免
    • 预防死锁:破坏持有并等待条件
  • 68. TCP拥塞控制
    • 四个阶段轮换过程描述
  • 69. C++的内存管理
  • 70. 构造函数可以是虚函数吗,析构函数呢

66. 程序什么时候应该使用多线程,什么时候单线程效率高?

在这里插入图片描述
在这里插入图片描述

67. 死锁的原因和避免

在这里插入图片描述
在这里插入图片描述

死锁的避免

在这里插入图片描述

预防死锁:破坏持有并等待条件

#include <iostream>
#include <thread>
#include <mutex>std::mutex mutex1;
std::mutex mutex2;void thread1() {while (true) {std::lock_guard<std::mutex> lock1(mutex1); // 持有资源1std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 模拟一些工作std::lock_guard<std::mutex> lock2(mutex2); // 持有资源2// 执行临界区代码std::cout << "Thread 1 working..." << std::endl;}
}void thread2() {while (true) {std::lock_guard<std::mutex> lock2(mutex2); // 持有资源2std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 模拟一些工作std::lock_guard<std::mutex> lock1(mutex1); // 持有资源1// 执行临界区代码std::cout << "Thread 2 working..." << std::endl;}
}int main() {std::thread t1(thread1);std::thread t2(thread2);t1.join();t2.join();return 0;
}

在这个示例中,线程1和线程2分别以相反的顺序获取两个互斥锁,容易导致死锁。为了避免死锁,可以修改代码,使线程在获取资源时遵循相同的顺序。

在这里插入图片描述
在这里插入图片描述

68. TCP拥塞控制

TCP拥塞控制是为了防止网络过载和拥塞而采取的一系列机制和算法。TCP拥塞控制的目标是高效地使用网络资源,同时避免网络拥塞导致的数据丢失和传输延迟。

TCP拥塞控制主要包括四个关键算法:慢启动(Slow Start)、拥塞避免(Congestion Avoidance)、快速重传(Fast Retransmit)和快速恢复(Fast Recovery)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四个阶段轮换过程描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

69. C++的内存管理

C++的内存管理涉及多个方面,包括栈内存和堆内存的分配与管理、对象的生命周期管理、以及避免和处理内存泄漏

RAII (Resource Acquisition Is Initialization),中文含义为『资源获取即初始化』,是C++中一种非常重要的资源管理技术。
在这里插入图片描述

在这里插入图片描述

70. 构造函数可以是虚函数吗,析构函数呢

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

浅窥Claude-Prompting for Agents的Talk

Prompting for Agents先说一句&#xff1a;颜值这么高&#xff0c;你俩要出道啊。此图基本就是claude倡导的agent prompt结构了&#xff0c;可以看到经过一年时间的演变&#xff0c;基本都是follow这个结构去写prompt。我比较喜欢用Role→react→task→histroy→few shot→rule…

【MySQL04】:基础查询

MySQL的基本查询表的增删查改 insert(插入) insert [info] table_name [(colume, [,colume] ...)] values (value_list) ...对于value_list我们通过,作为分隔符 插入替换我们使用on duplicate key update, 表示如果存在主键冲突, 会进行更新, 这个字段后面还有写更新的字段repl…

NGINX反向代理golang后端服务

nginx配置参考&#xff08;/etc/nginx/sites-available路径下创建配置文件&#xff09; server {listen 80; # 监听80端口server_name ip; # 你的域名或IPlocation / {root /var/www/test_page/;index index.html; # 默认文件try_files $uri $uri/ /index.html; # 单页…

【秋招笔试】2025.08.03虾皮秋招笔试-第二题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 02. 城市规划的连通网络 问题描述 A先生是一名城市规划师,他负责设计一个智能城市的通信网络。城市被划分为一个 n m n \times m n

JVM 01 运行区域

Java 虚拟机 跨平台 虚拟机隐藏平台差异&#xff0c;解决不同平台代码运行结果不一致问题&#xff0c;实现Write Once, Run Anywhere&#xff0c;实现用户代码跨平台。它本身是一个操作系统上的应用程序&#xff0c;将字节码文件翻译成特定机器的机器码。 Java 虚拟机 运行时内…

[学习笔记-AI基础篇]03_Transfommer与GPT架构学习

介绍GPT-1,GPT-2,GPT-3,GPT-4 GPT-1 介绍2018年6月,OpenAI公司发表了论文"|mproving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》,推出了具有1.17亿个参数的GPT-1(Generative Pre-trainingTransformers,生成式预训练变换…

HPNetworkCheckControl.dll HPEnvRes.dll hpcasl.dll HpBwcDecode.dll HpBlogic.dll hpbhilxres.dll

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

飞算 JavaAI:给需求分析装上 “智能大脑“

在软件开发的漫长旅途中&#xff0c;需求分析是至关重要的起点&#xff0c;其精准度与效率直接关乎整个项目的成败。传统的需求分析依赖人工梳理&#xff0c;不仅耗费大量时间与精力&#xff0c;还时常出现理解偏差和逻辑漏洞。而飞算 JavaAI 的横空出世&#xff0c;犹如为需求…

javacc学习笔记 01、JavaCC本地安装与测试

文章目录前言本章节源码一、什么是javacc二、Mac环境安装javacc三、javacc测试案例1、编写词法描述文件2、借助javacc命令来处理demo01.jj文件3、idea配置输入参数&#xff0c;运行Adder类方法四、javacc文件编译类描述4.1、demo1.jj文件生成内容描述&解析转换过程4.2、解析…

Java基础-stream流的使用

目录 案例要求&#xff1a; 实现思路&#xff1a; 代码&#xff1a; 总结&#xff1a; 案例要求&#xff1a; 实现思路&#xff1a; 创建一个包含学生姓名(String)和选择地址变量(集合)的实体类,然后将题干数据封装到集合,然后进行stream操作 代码&#xff1a; import ja…

virtualbox+UBuntu20.04+内存磁盘扩容

写在前面&#xff1a;1.由于我写博客都是偏向个人笔记性质的&#xff0c;所以写的比较粗糙&#xff0c;如果有疑问私信评论我即可。2.这篇博客的解决方法应该算是“全网”首发吧&#xff0c;因为我为了磁盘扩容真的找了好多相关资料&#xff0c;但是基本都没有用。如果你也是找…

关于对Spring的理解,以及对spring中的两大核心概念AOP和IOC的理解

我们先来说一说Spring&#xff0c;从总体上Spring就是一个基础框架&#xff0c;同时Spring给我们提供了一个Bean容器&#xff0c;用来装载和管理具体的Bean对象&#xff0c;你像我们之前创建对象的时候就是通过new关键字来实现的&#xff0c;但是现在我们只需要告诉容器有哪些对…

Next Terminal 实战:内网无密码安全登录

本文首发于 Anyeの小站&#xff0c;点击阅读原文体验更加。 前言 在日常的 HomeLab 或小型私有云环境中&#xff0c;我们常常通过反向代理&#xff08;如 Nginx、Caddy 等&#xff09;将内网服务暴露到公网&#xff0c;方便远程访问。然而&#xff0c;一旦端口映射开启、公网…

WebSocket断线重连机制:保障实时通信的高可用性

一、为什么需要断线重连&#xff1f;WebSocket虽提供全双工通信能力&#xff0c;但实际环境中连接稳定性受多重威胁&#xff1a;​​网络层波动​​&#xff1a;Wi-Fi切换、4G/5G信号抖动&#xff08;触发onclose事件&#xff09;​​服务端异常​​&#xff1a;服务器宕机、主…

低空三维多物理场耦合风洞试验,保证飞行器的性能安全是低空飞行的底线,是低空经济发展的基础

风墙\风矩阵开发背景&#xff1a;2024年被称为中国低空经济产业发展元年&#xff0c;国家发改委提出“无安全、不低空”原则&#xff0c;要求低空经济产业在技术研发、适航认证、运营管理各环节优先保障安全。目前无人机及其他低空飞行器技术已深度融入军事、民用与工业领域&am…

中文基于Qwen3-235B-2507蒸馏数据集的操作

中文基于Qwen3-235B-2507蒸馏数据集的操作 flyfish 方式1 from datasets import load_dataset from transformers import AutoTokenizer# -------------------------- 配置参数 -------------------------- TOKENIZER_PATH "/media/models/models/Qwen/Qwen3-8B/" #…

论文阅读笔记:《Dataset Distillation by Matching Training Trajectories》

论文阅读笔记&#xff1a;《Dataset Distillation by Matching Training Trajectories》1.动机与背景2.核心方法&#xff1a;轨迹匹配&#xff08;Trajectory Matching&#xff09;3.实验与效果4.个人思考与启发主体代码算法逻辑总结一句话总结&#xff1a; 这篇论文通过让合成…

STM32标准库的工程创建

一.所需文件说明 1.启动文件startup_xxxx.s 作用&#xff1a;初始化堆栈指针、复位向量、中断向量表&#xff0c;执行 SystemInit() 后跳转到 main()。 位置&#xff1a;Libraries/CMSIS/Device/ST/STM32Fxx/Source/Templates/arm/ 文件名&#xff1a; startup_stm32f10x_l…

k8s ceph sc 设置文件系统格式化参数

前言 默认的 sc 文件系统 inode 太少,对于小文件场景,往往会出现容量没满,inode 已经用尽的情况,本文说明如何设置 inode。 说明 本文使用的是 rook-ceph 部署的 ceph 作为存储后端。 xfs 文件系统 sc 创建带格式化参数的 xfs 文件系统的 sc allowVolumeExpansion: t…

关于Npm和Nvm的用法

npm是个什么东西 npm是什么 node package managernodejs包管理工具处理复杂的包的管理的问题那么使用npm以后就不需要从前端引入相应的代码和文件等。 npm相关的命令 查看版本npm -v 更新npm install npm5.4.0 更新到最新版本npm install npmlatest 初始化项目 npm ini…