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

git基本使用

git

默认情况下,克隆的远程仓库会被命名为 origin

git remote remove origin
# 移除默认的远程仓库 origingit remote add origin https://github.com/CS144/minnow.git
# 添加一个新的远程仓库 origin,指向自己的 GitHub 仓库git branch -M main
#将当前分支重命名为 main(如果默认分支是 master,这一步会将其改为 main)git push -u origin main:
# 将本地的 main 分支推送到远程仓库 origin,并设置 origin/main 为上游分支(-u 参数的作用)
# 之后可以直接使用 git push 和 git pull,而不需要指定远程分支git remote add upstream https://github.com/CS144/minnow.git
# 添加一个新的远程仓库 upstream,指向原始的上游仓库
# 保留与上游仓库的连接,以便后续可以拉取上游的更新git remote -v
# 查看远程仓库列表git fetch upstream(前面设置的https://github.com/CS144/minnow.git,将仓库改为upstream名,origin是git clone后默认的名;) branch_name
# 拉取upstream的分支名git branch -d <branch_name>
# 删除已经合并的本地分支git branch -D <branch_name>
# 强制删除本地分支git merge upstream/check1-startercode
# 将上面拉取的upstream/check1-startercode合并到本地分支main中

git 提交

A <- B<- C(main)
  1. A是第一次提交;
  2. B是第二次提交;
  3. C是第三次提交;
  4. 当前C是最新一次的提交,所以main分支当前指向了C

git 创建新分支

假设现在 基于main分支创建了一个 新分支 feature:

git checkout -b feature
  1. feature 分支也指向提交 C,并且继承了 C 的所有父提交(BA

  2. feature 分支上开始新的工作,比如修改文件并提交:

    A <- B <- C (main)\D (feature)
    
  3. 通过创建 feature 分支,可以在不影响 main 分支的情况下进行新的开发

  4. 完成工作后,可以将 feature 分支合并回 main 分支,或者继续在 feature 分支上开发


git 合并分支merge

git merge 命令合并两个分支时,Git 会尝试将两个分支的历史记录整合到一起

假设有以下提交历史:

      A <- B <- C (main)\D <- E (feature)
  1. main 分支的最新提交是 C
  2. feature 分支的最新提交是 E
  3. 它们的共同祖先是提交 A

执行 git merge feature(在 main 分支上合并 feature 分支)时,Git 会创建一个新的合并提交 F

      A <- B <- C <- F (main)\           /D <- E <- (feature)
  1. 合并提交 F 有两个 parent 节点:
    1. 第一个 parent 是 Cmain 分支的最新提交)
    2. 第二个 parent 是 Efeature 分支的最新提交)
  2. 通过 F,Git 可以同时访问 mainfeature 分支的所有历史记录

git rebase

Git 中另一种合并分支的方法;通过“重新定位”提交记录来创造更线性的提交历史

  1. 找到当前分支和目标分支(通常是 main 或 master)的共同祖先
  2. 将当前分支上新增的提交提取出来,保存为临时文件
  3. 将当前分支指向目标分支的最新提交
  4. 将提取的提交逐个重新应用到目标分支的最新提交之后
      A <- B <- C (main)\D <- E (feature)

Rebase之后:

      A <- B <- C <- D' <- E' (feature)(main)

HEAD

使用git checkout <commit-has>可以让HEAD直接指向某个提交记录,从而分离HEAD


^操作符

^ 操作符 用于访问某个提交记录的 父节点

假设:

C0 <- C1 <- C2 <- C3 (main)
  1. main 分支的最新提交是 C3

  2. git checkout main^
    
  3. 此时 HEAD会指向C2

  4. git checkout main^^
    
  5. 此时,HEAD 会指向 C1


切换分支的父节点

git branch -f main C6

  1. 强制将 main 分支指向提交记录 C6
  2. git branch -f 用于强制移动分支的指向
  3. main 分支移动到提交记录 C6,无论 main 分支之前指向哪里

git checkout HEAD~1

  1. HEAD 移动到当前提交记录的第一个父节点

git branch -f bugFix HEAD~1

  1. 强制将 bugFix 分支指向当前 HEAD 的父节点

reset 和 revert 撤回

假设原始提交链条:

C0 <- C1 <- C2 <- C3 (HEAD -> main)

执行 git reset C1后:

C0 <- C1 (HEAD -> main)

C2C3 被丢弃(但内容可能保留在工作目录,取决于 reset 的模式)

  1. --soft:仅移动分支指针,保留工作目录和暂存区的修改
  2. --mixed(默认):移动分支指针,并重置暂存区,但保留工作目录的修改
  3. --hard:彻底丢弃所有修改,分支指针、暂存区和工作目录全部回退

git revert:撤销某个提交

假设原始提交链:

C0 <- C1 <- C2 <- C3 (HEAD -> main)

执行 git revert C3 后:

C0 <- C1 <- C2 <- C3 <- C4 (HEAD -> main)

C4 是一个新提交,内容是撤销 C3 的更改

此时:C4 的内容与 C2 相同


git cherry-pick

  1. 复制提交:将某个提交的更改应用到当前分支,生成一个新的提交
  2. 选择性合并:只合并某个分支上的特定提交,而不是整个分支
  3. 将修复 bug 的提交从开发分支应用到生产分支

假设以下提交历史:

      C0 <- C1 <- C2 (main)\C3 <- C4 <- C5 (feature)

现在:将 feature 分支上的提交 C4 应用到 main 分支

  1. git checkout main
    
  2. git cherry-pick C4
    
  3. 结果:

       C0 <- C1 <- C2 <- C4' (main)\C3 <- C4 <- C5 (feature)
    

    C4'C4 的副本,内容与 C4 相同,但哈希值不同


UI交互式变基 Interactive Rebase

Git 中一种高级操作,通过 git rebase -i 命令触发。它允许你以更精细的方式修改提交历史,例如重写、合并、拆分或删除提交

git rebase -i <目标提交>

git pull

git pull 就是 git fetch 和 git merge 的缩写


git pull --rebase; git push

如果远程仓库被别人提交了一次,本地的o/main没有更新,就无法push到远程仓库;

此时:

  1. 拉取远程仓库的新更新;
  2. 然后将本地的一次提交,合并后再push

相关文章:

git基本使用

git 默认情况下&#xff0c;克隆的远程仓库会被命名为 origin git remote remove origin # 移除默认的远程仓库 origingit remote add origin https://github.com/CS144/minnow.git # 添加一个新的远程仓库 origin&#xff0c;指向自己的 GitHub 仓库git branch -M main #将当…...

解决IDEA中自动生成返回值带final修饰的问题

修改配置文件&#xff1a; 1、在settings选项下&#xff0c;Editor–Code Style–Java–Code Generation&#xff0c;确保红框内的两项不被勾选 2、在自动生成的地方,仔细观看final下面带有下划线,说明此处存在快捷键,这时按下ALT F, 选项框会取消勾选Declare final. 回车接…...

Java中的Exception和Error有什么区别?还有更多扩展

概念 在Java中&#xff0c;Exception和Error都是Throwable的子类&#xff0c;用于处理程序中的错误和异常情况。 然而&#xff0c;它们在用途和处理方式上有显著的不同&#xff1a; Exception&#xff1a; 用于表示程序在正常运行过程中可能出现的错误&#xff0c;如文件未找…...

什么是中性线、零线、地线,三相四线制如何入户用电

在变压器三相电侧&#xff0c;按照星形连接法&#xff0c;有一个中心点&#xff0c;这根线引出来的线接不接地&#xff1a;不接地就是中性线&#xff0c;接地就是零线 下面就是没有接地&#xff1a;中性线 接地了以后就可以叫做零线了 三相电在高压输电的时候是没有零线的&a…...

不用额外下载jar包,idea快速查看使用的组件源码

以nacos为例子&#xff0c;在idea中引入了nacos依赖&#xff0c;就可以查看源码了。 2. idea选择open&#xff08;不关闭项目直接选择file-open也可以&#xff09;, 在maven的仓库里找到对应的包&#xff0c;打开 2.idea中选择 jar包&#xff0c;选择 add as library 3.这样j…...

Ant Design X 和 Element-Plus-X

Ant Design X 是 Ant Design 的全新 AGI 组件库&#xff0c;旨在帮助开发者更轻松地研发 AI 产品用户界面。提供AI交互所需的Attachments、Sender、ThoughtChain等组件&#xff0c;以及useXAgent、XStream等hooks。 具备支持Vue和React两个版本 React&#xff1a; https://gi…...

jetson配置yolov5(tensor加速版)出现的问题(killed+tensor+~)

1.在cmake生成engine引擎文件时&#xff0c;出现一系列报错 make [ 20%] Building NVCC (Device) object CMakeFiles/myplugins.dir/myplugins_generated_yololayer.cu.o /home/lin/yolov5-4.0/yolov5/yololayer.h(54): error: member function declared with "override&…...

【华为战报】2025年3月 考试战报!

原创&#xff1a;厦门微思网络 了解更多往期考试→点 【考试战报】 华为认证 HCIA 3月 微思 | HCIA 考试战报 学员成绩单 华为认证 HCIP 3月 微思 | HCIP 考试战报 学员成绩单 学员证书 华为认证 HCIE 3月 微思 | HCIE 考试战报 学员成绩单 学员证书 华为认证 最新开班 厦门面授…...

daz3d ERC Freeze to Morph Target 和 另存为 Morph Asset(s)

. ERC 冻结至变形目标 (ERC Freeze to Morph Target) 核心目标&#xff1a;将骨架的调整与自定义造型的滑块关联起来。 详细解释&#xff1a; 当你创建一个自定义造型&#xff08;Morph&#xff09;并调整了骨架&#xff08;Rigging&#xff09;以适应这个新造型后&#xff…...

【网络安全 | 项目开发】Web 安全响应头扫描器(提升网站安全性)

未经许可,不得转载。 文章目录 项目简介项目功能示例输出技术栈:简单代码结构可选扩展功能项目简介 Web 安全响应头扫描器(Security Headers Checker),一个安全合规工具,用于检测目标网站是否配置了关键的 HTTP 安全头部,帮助开发者提升网站基础安全性。 项目功能 1.…...

Python - 爬虫-网页抓取数据-库requests

requests库是一个功能强大的HTTP库&#xff0c;用于发送各种HTTP请求&#xff0c;如GET、POST、PUT、DELETE等。 requests官网&#xff1a;Requests: HTTP for Humans™ — Requests 2.32.3 documentation 使用requests可以模拟浏览器的请求&#xff0c;比起之前用的urllib&a…...

antv x6使用(支持节点排序、新增节点、编辑节点、删除节点、选中节点)

项目需要实现如下效果流程图&#xff0c;功能包括节点排序、新增节点、编辑节点、删除节点、选中节点等 html部分如下&#xff1a; <template><div class"MindMapContent"><el-button size"small" click"addNode">新增节点&…...

Nginx 是什么?Nginx高并发架构拆解指南

你是一个程序员&#xff0c;你在电脑上编辑了一段文本&#xff0c;将它保存为 txt 文件。将它拖到浏览器打开&#xff0c;就能看到文件里的内容。 但这看起来太过单调&#xff0c;为了让画面更丰富&#xff0c;我们定个规则&#xff0c;在文本边上加个两个h1符号&#xff0c;文…...

JS forEach方法

遍历数组...

可道云支持群晖的docker安装了:全网唯一支持onlyoffice安装说明

在群晖系统上部署可道云面临显著的技术门槛。DSM7.2版本因不兼容Apache2.2等组件&#xff0c;用户需改用Docker手动配置环境&#xff0c;涉及PHP扩展、SQLite3适配及存储路径映射等复杂操作&#xff0c;且安装后需通过WebStation调整脚本语言参数&#xff0c;对非专业用户极不友…...

V4L2杂谈

V4L2的开发手册 在做v4l2的开发的时候&#xff0c; 可以使用v4l2-ctl命令协助调试和软件开发。关于linux多媒体开发可以参考链接&#xff1a;https://www.linuxtv.org/wiki/index.php/Main_Page关于v4l2的api接口开发可以参考&#xff1a;https://linuxtv.org/docs.php在linux…...

Java—HTML:3D形变

今天我要介绍的是在Java HTML中CSS的相关知识点内容之一&#xff1a;3D形变&#xff08;3D变换&#xff09;。该内容包含透视&#xff08;属性&#xff1a;perspective&#xff09;&#xff0c;3D变换&#xff0c;3D变换函数以及案例演示&#xff0c; 接下来我将逐一介绍&…...

Zotero PDF Translate 翻译插件使用OpenAI API配置教程

PDF Translate&#xff1a;提升 Zotero 内置 PDF 阅读器的翻译功能 “PDF Translate” 是一款为 Zotero 设计的插件&#xff0c;旨在方便用户在 Zotero 内置的 PDF 阅读器中进行划词或段落翻译&#xff0c;辅助阅读外文文献。 一、 安装插件 下载插件&#xff1a; 访问 PDF T…...

[raspberrypi 0w and respeaker 2mic]实时音频波形

0. 环境 ubuntu22主机&#xff0c; 192.168.8.162&#xff0c; raspberry 0w&#xff0c; 192.168.8.220 路由器 1. 树莓派 # rpi - send.py # 或者命令行&#xff1a;arecord -D plughw:1,0 -t wav -f cd -r 16000 -c 2 | nc 192.168.8.162 12345import socket imp…...

go-zero自动生成repository文件和测试用例

文章目录 repository的作用自动生成repository文件repo模板文件repo_test模板文件生成结果运行测试用例 repository的作用 在软件开发中&#xff0c;尤其是在采用分层架构或者领域驱动设计&#xff08;DDD&#xff09;的项目里&#xff0c;repository&#xff08;仓库&#xf…...

红宝书第三十六讲:持续集成(CI)配置入门指南

红宝书第三十六讲&#xff1a;持续集成&#xff08;CI&#xff09;配置入门指南 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、什么是持续集成&#xff1f; 持续集成&#xff08;CI&#xff09;就像咖啡厅的…...

【Java学习】如何利用AI学习Java语言开发(二)

利用AI辅助学习Java语言开发可以显著提高学习效率、解决实际问题和优化代码质量。以下是结合AI工具和方法的系统化学习路径: 一、AI辅助学习基础阶段 智能交互式学习平台 使用Codecademy(AI驱动版)或JetBrains Academy的Java课程,AI会根据你的代码实时提供修正建议 尝试Ch…...

【C++算法】53.链表_重排链表

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 143. 重排链表 题目描述&#xff1a; 解法 模拟 找到链表的中间节点 快慢双指针 把后面的部分逆序 双指针&#xff0c;三指针&#xff0c;头插法 合并两个链表 合并两个有…...

Ubuntu安装Docker引擎

安装Docker引擎 一、注意事项 防火墙兼容性 若使用 ufw​ 或 firewalld​&#xff0c;Docker 容器端口会绕过防火墙规则。建议通过 iptables​ 或 ip6tables​ 配置防火墙&#xff0c;并将规则添加到 DOCKER-USER​ 链。仅支持 iptables-nft​ 和 iptables-legacy​&#xff0…...

[目标检测]2023ICCV:DiffusionDet: Diffusion Model for Object Detection

作者&#xff1a;Shoufa Chen, Peize Sun, Yibing Song, Ping Luo 论文&#xff1a;https://arxiv.org/pdf/2211.09788v2 代码&#xff1a;https://github.com/ShoufaChen/DiffusionDet 摘要 我们提出了一个新的框架DiffusionDet&#xff0c; 将目标检测构建为从噪声框到目标…...

CExercise_09_结构体和枚举_2VS的Debug模式查看它的内存布局,采用结构体数组的方式存储信息,调用函数打印结构体数组.

题目&#xff1a; 下面结构体类型的变量的内存布局是怎样的&#xff1f;请使用VS的Debug模式查看它的内存布局 typedef struct stundent_s {int number;char name[25];char gender;int chinese;int math;int english; } Student;// 结构体对象的声明和初始化 Student s1 { 1, …...

LeetCode 热题 100_零钱兑换(85_322_中等_C++)(动态规划)

LeetCode 热题 100_零钱兑换&#xff08;85_322&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;动态规划&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;动态规划&#xff09;&a…...

Java——抽象方法抽象类 接口 详解及综合案例

1.抽象方法抽象类 介绍 抽象方法: 将共性的行为(方法)抽取到父类之后&#xff0c; 由于每一个子类执行的内容是不一样&#xff0c; 所以&#xff0c;在父类中不能确定具体的方法体。 该方法就可以定义为抽象方法。 抽象类: 如果一个类中存在抽象方法&#xff0c;那么该类就必须…...

国产芯片解析:LDR6501 Type-C接口OTG充电PD芯片详解

LDR6501 是一款专为 USB Type-C 设备设计的单C口DPR接口PD通信芯片&#xff0c;封装形式为 SOT23-6。此款芯片具有多项实用功能&#xff0c;在耳机转接器、领夹麦克风以及 OTG 转接头等应用中表现出色。 应用领域 ‌耳机转接器‌&#xff1a;许多新型耳机采用 Type-C 接口&am…...

Payoneer(P卡)会关联吗?如何有效防止P卡关联?

随着跨境电商和全球支付需求的增加&#xff0c;Payoneer&#xff08;简称P卡&#xff09;成为了许多商家和个人进行国际支付和收款的重要工具。Payoneer是一种全球支付平台&#xff0c;支持用户跨国收款、汇款&#xff0c;并提供多种货币的账户支持。 许多从事跨境电商的商家和…...

前端基础之《Vue(3)—计算属性》

一、computed选项 1、计算属性 语法&#xff1a;在computed选项中&#xff0c;定义计算属性方法&#xff0c;在方法体使用声明式变量进行若干计算。 2、计算属性一定是个函数。一定有返回值。 3、计算属性的作用 &#xff08;1&#xff09;用于优化指令的表达式&#xff0c;…...

【Linux】Linux 权限:数字背后的神秘 “门禁卡” 系统

目录 权限的基本概念Linux上用户的分类超级用户和普通用户用户之间的切换文件访问者的分类 文件属性与访问权限Linux下的文件类型文件后缀在Linux中的作用文件自身的属性【⭐】文件访问者的三种权限【rwx】文件权限值的表示方法 文件访问权限的相关设置方法chmod——设置文件的…...

Java中List方法的使用详解

目录 一、List接口概述二、List常用方法&#xff08;一&#xff09;创建List对象&#xff08;二&#xff09;添加元素&#xff08;三&#xff09;删除元素&#xff08;四&#xff09;查找元素&#xff08;五&#xff09;遍历列表&#xff08;六&#xff09;列表的大小&#xff…...

多模态大语言模型arxiv论文略读(十一)

Can We Edit Multimodal Large Language Models? ➡️ 论文标题&#xff1a;Can We Edit Multimodal Large Language Models? ➡️ 论文作者&#xff1a;Siyuan Cheng, Bozhong Tian, Qingbin Liu, Xi Chen, Yongheng Wang, Huajun Chen, Ningyu Zhang ➡️ 研究机构: 浙江大…...

JS—防抖和节流:1分钟掌握防抖和节流

个人博客&#xff1a;haichenyi.com。感谢关注 一. 目录 一–目录二–防抖三–节流四–进阶应用五–总结 二. 防抖&#xff08;Debounce&#xff09; 防抖&#xff08;Debebounce&#xff09;和节流&#xff08;Throttle&#xff09;都是前端开发中用于优化高频事件性能的两…...

MCP基础学习二:MCP服务搭建与配置

文章目录 MCP服务搭建与配置一&#xff0c;学习目标&#xff1a;二&#xff0c;学习内容&#xff1a;1. 如何搭建MCP服务端服务端初始化与配置MCP服务架构与数据流交互图核心实现注册服务功能服务器启动与API暴露 2. 本地应用与MCP服务的集成客户端SDK实现客户端应用实现功能演…...

MyBatis 操作数据库

目录 什么是MyBatis? 注释 Mapper注释的介绍和使用 Select注释的介绍和使用 SpringBootTest注释的介绍和使用 Test注释的介绍的使用 MyBatis入门​ 1&#xff09;准备工作 <1>创建工程​ <2>数据准备​ 2&#xff09;配置数据库连接字符串 3&#xff…...

蓉光:科技与自然的千年交响

故事背景 故事发生在中国四川成都&#xff0c;这座千年古城在近未来完成蜕变&#xff0c;青城山的云雾与锦江的碧波间&#xff0c;智能建筑如雨后春笋般生长。全城建筑采用太阳能皮肤&#xff0c;街道流淌着数字化的都江堰水系&#xff0c;杜甫草堂的飞檐与机械芙蓉树共舞&…...

[C语言]gets和fgets函数区别及详解

一、gets 每当讨论 gets 函数时&#xff0c;大家不由自主地就会想起 1988 年的“互联网蠕虫”&#xff0c;它在 UNIX 操作系统的 finger 后台程序中使用一个 gets 调用作为它的攻击方式之一。很显然&#xff0c;对蠕虫病毒的实现来说&#xff0c; gets 函数的功劳不可小视。不…...

【场景应用3】audio_classification:音频分类的微调

1 引言 本笔记展示了如何对多语种预训练的语音模型进行微调,以实现自动语音识别(Automatic Speech Recognition)。 本笔记旨在使用SUPERB数据集中的关键词检测子集,并且可以使用任何来自模型库(Model Hub)的语音模型检查点,只要该模型有一个包含序列分类头(Sequence …...

【前端】【难点】前端富文本开发的核心难点总结与思路优化

前端富文本开发的核心难点总结 富文本编辑器在前端开发中广泛应用于内容管理系统、文章发布、评论区等场景。其开发与集成存在较多复杂性&#xff0c;涵盖内容结构管理、交互体验、跨平台兼容性等方面&#xff0c;以下逐项分析。 二、富文本开发的具体难点分析 &#xff08;一…...

如何优雅使用 ReentrantLock 进行加解锁:避免常见坑点,提高代码可维护性

引言&#xff1a;锁的基本概念和问题 在多线程编程中&#xff0c;为了确保多个线程在访问共享资源时不会发生冲突&#xff0c;我们通常需要使用 锁 来同步对资源的访问。Java 提供了不同的锁机制&#xff0c;其中 ReentrantLock 是一种最常用且功能强大的锁&#xff0c;它属于…...

帕金森患者行动迟缓,日常生活怎么破局?

帕金森病&#xff0c;是一种常见于中老年人的神经退行性疾病&#xff0c;正悄然改变着无数患者的生活轨迹。它初期症状隐匿&#xff0c;常以手抖为信号&#xff0c;起初可能只是在安静状态下&#xff0c;手部出现轻微且有节律的震颤&#xff0c;随着时间推移&#xff0c;震颤逐…...

7-openwrt-one通过web页面配置访客网络、无线中继等功能

前几个章节一直在介绍编译、分区之类的,都还没正常开始使用这个路由器的wifi。默认wifi是没有启动的,前面还是通过手动修改uci配置启动的,这个章节介绍下官方web页面的使用。特别是访客网络、无线中继 1、开启wifi,配置wifi基本信息 我们使用有线连接路由器,通过192.168.…...

塑造现代互联网的力量:Berkeley在网络领域的影响与贡献

引言 “Berkeley” 这个名字在计算机网络和互联网领域中具有举足轻重的地位&#xff0c;许多关键的技术、协议和工具都与其紧密相关。它与 加利福尼亚大学伯克利分校&#xff08;UC Berkeley&#xff09; 密切相关&#xff0c;该校在计算机科学与网络研究中做出了许多开创性的…...

大数据学习(105)-Hbase

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

c# 系列pdf转图片 各种处理3--net3.1到net8 PDFtoImage

最近一直在做pdf渲染图片的问题&#xff0c;nuget PDFtoImage 支持3.1到net8 &#xff0c;直接上代码 private static void DownloadFileAsync(string url, string localPath){using (HttpClient client new HttpClient()){client.DefaultRequestHeaders.Add("User-Agen…...

宁德时代25年春招笔试演绎数字推理SHL测评题库

宁德时代校招测评包含演绎推理数字推理两部分&#xff0c;请单击以下链接进行测评&#xff0c;详细操作指引请参见如下指引&#xff0c;请在测试前了解&#xff0c;大约用时60分钟。正式测评有两个部分:数字推理18分钟演绎推理18分钟&#xff0c;数字推理共10题&#xff0c;演绎…...

C# 看门狗策略实现

using System; using System.Threading;public class Watchdog {private Timer _timer;private volatile bool _isTaskAlive;private readonly object _lock new object();private const int CheckInterval 5000; // 5秒检测一次private const int TimeoutThreshold 10000; …...

聊透多线程编程-线程池-5.C# 线程池(ThreadPool)详解

1. 线程池的基本概念 线程池的作用 由于每创建一个线程都需要该线程分配一定的内存空间&#xff0c;因此创建大量线程会导致内存使用量迅速增加&#xff0c;并可能导致性能问题。线程池的主要目的是减少线程创建和销毁的开销&#xff0c;从而提高程序性能。线程池维护了…...