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

04-线程

一、线程的概念

1、进程是系统分配资源的最少单位,操作系统会为每一个进程分配一块虚拟内存空间!

线程是系统调度最少的单位,操作系统分配时间片的过程,就是系统调度! 线程也会占用时间片!

2、线程的内存资源

线程的内存资源是通过进程分配得到的,所以线程的创建不会让操作系统分配新的内存空间,可以节省多任务运行时

内存资源浪费。 但是线程时占用进程的栈空间的! 所有线程共享全局变量,所以线程间的通信,利用全局变量即可!

3、pthread_create 线程的创建

#include <pthread.h>int pthread_create(pthread_t *thread,  👉 线程tid  const pthread_attr_t *attr, 👉 线程属性 void *(*start_routine) (void *), 👉线程的任务函数,当线程创建后就执行该函数void *arg); 👉传递任务函数的参数 void *(*start_routine) (void *)   函数指针,指向任务函数,函数回调。   👇任务函数必须定义如下:返回值为 void * 参数为void *的函数void *func (void *arg) {//循环任务    }           -------创建线程实现任务的并发--------
#include <stdio.h>
#include <pthread.h>
// 线程任务函数
void *task(void *arg)
{int j = 0;while (1){printf("j=%d\n", j++);}
}int main()
{pthread_t tid;pthread_create(&tid, NULL, task, NULL); // 创建一个线程,执行task函数int i = 0;while (1){printf("i=%d\n", i++);}
}           

4、线程的参数传递

5、pthread_join 线程资源回收

NAMEpthread_join - join with a terminated thread回收一个线程的资源 
SYNOPSIS#include <pthread.h>int pthread_join(pthread_t thread, void **retval);thread:回收资源的线程 tid号 retval:线程的退出参数,保存 pthread_exit 参数的地址。👉 但是没啥用   -------例子:回收线程资源并获取退出状态码-----------
#include <stdio.h>
#include <pthread.h>
// 全局变量
// int ret = 0;void *task(void *arg) // 子线程
{// int i = 0; // 局部变量,栈空间static int i = 0; // 数据段printf("变量i的地址 %p\n", &i);while (1){printf("%ld  线程正在运行\n", pthread_self());sleep(1);i++;if (i == 5){// 退出线程pthread_exit(&i);}}
}int main() // 主线程
{// 创建一个线程pthread_t tid;pthread_create(&tid, NULL, task, NULL);printf("等待子线程结束并回收资源\n");void *thread_return = NULL;pthread_join(tid, &thread_return); // 等待子线程结束,防止僵尸线程产生 ,回收线程的资源 ✨ 栈空间printf("回收线程资源成功 %p\n", thread_return);int *p = thread_return;printf("访问子线程的退出值 %d\n", *p); // 非法访问,因为栈空间已经被回收了
}

6、线程属性设置

线程属性的设置流程:
1.int pthread_attr_init(pthread_attr_t *attr);  初始化线程属性   2.根据属性API来设置线程属性  
pthread_attr_setxxxxxxx(); int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);  //设置分离与结合属性  attr:线程属性 detachstate:    👉 PTHREAD_CREATE_DETACHED  让线程自动回收资源   (分离)👉 PTHREAD_CREATE_JOINABLE  让线程调用join回收   (结合)3.利用该属性创建线程  
pthread_create(tid,&attr,task,NULL);---------------例子:利用分离属性创建线程-----------
// 1.初始化线程属性
pthread_attr_t attr;
pthread_attr_init(&attr);// 2.设置线程为分离属性
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);// 3.利用分离属性创建线程
pthread_t tid;
pthread_create(&tid, &attr, task, NULL);printf("等待线程结束\n");
pthread_join(tid, NULL); // 阻塞等待线程结束,并回收资源//当一个线程为分离属性后,就会自动回收资源,无需pthread_join回收,所以join的阻塞失效
printf("线程资源回收成功\n");😘快速设置线程为分离属性  
NAMEpthread_detach - detach a threadSYNOPSIS#include <pthread.h>int pthread_detach(pthread_t thread);thread:需要设置分离属性的线程tid

7、获取线程栈空间

NAMEpthread_attr_setstacksize, pthread_attr_getstacksize - set/get stack size attribute in thread attributes ob‐jectSYNOPSIS#include <pthread.h>int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize); //设置栈的大小 int pthread_attr_getstacksize(const pthread_attr_t *attr,size_t *stacksize); //获取栈的大小--------例子:修改线程栈空间大小--------// 1.初始化线程属性
pthread_attr_t attr;
pthread_attr_init(&attr);// 设置栈空间大小
pthread_attr_setstacksize(&attr, 16384 * 2);// #define PTHREAD_STACK_MIN    16384 创建的栈大小必须大于该值// 2.创建线程
pthread_t tid;
pthread_create(&tid, &attr, task, NULL);// 3.获取当前线程的栈空间大小
long unsigned stacksize = 0;
pthread_attr_getstacksize(&attr, &stacksize);printf("当前线程的栈大小 %ld\n", stacksize);

二、进程退出条件

1、当一个进程结束时,所有的线程都会死亡,但是主线程退出,进程不会结束。

2、phread_exit 退出线程

NAMEpthread_exit - terminate calling thread结束一个线程
SYNOPSIS#include <pthread.h>void pthread_exit(void *retval);retval:线程退出状态值

3、exit 立即结束进程

NAMEexit - cause normal process termination立即结束进程
SYNOPSIS#include <stdlib.h>void exit(int status);  //释放资源才结束,例如:清空缓存区#include <unistd.h>void _exit(int status); //立即结束,不做任何的操作! 

例子:读取一个目录下的普通文件,当遇到一个普通文件则创建一个线程进行复制

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <pthread.h>
#include <stdlib.h>
struct file
{char old_path[1024];char new_path[1024];
};// 线程拷贝任务
void *cp_task(void *arg)
{// 转换地址类型struct file *p = arg;printf("线程启动 %ld 开始拷贝 %s  %s\n", pthread_self(), p->old_path, p->new_path);// 1.打开源文件FILE *fp = fopen(p->old_path, "r+");if (fp == NULL){perror("打开文件失败\n");return NULL;}// 2.创建新文件FILE *xfp = fopen(p->new_path, "w+");if (xfp == NULL){perror("创建新文件失败\n");return NULL;}while (1){// 读取源文件内容int ch = fgetc(fp);if (ch == EOF){break;}// 写入新文件fputc(ch, xfp);}// 关闭所有文件free(p); // 拷贝完毕后释放堆空间fclose(fp);fclose(xfp);
}int main(int argc, char *argv[])
{if (argc != 3){printf("请输入拷贝的目录./cpdir olddir  newdir\n");return -1;}// 1.打开原来的目录DIR *dp = opendir(argv[1]);if (dp == NULL){perror("打开目录失败\n");return -1;}// 2.创建新的目录mkdir(argv[2], 0777);// 遍历目录中的所有文件while (1){struct dirent *p = readdir(dp);if (p == NULL){break;}// 判断文件类型if (p->d_type == DT_REG){// struct file f; //栈空间,每次循环,都会释放! 导致线程获取的目录,路径不正确struct file *f = malloc(sizeof(struct file));sprintf(f->old_path, "%s/%s", argv[1], p->d_name);sprintf(f->new_path, "%s/%s", argv[2], p->d_name);// 开启线程pthread_t tid;pthread_create(&tid, NULL, cp_task, f);}}// 关闭目录closedir(dp);pthread_exit(NULL); // 退出主线程,进程不会结束
}

相关文章:

04-线程

一、线程的概念 1、进程是系统分配资源的最少单位,操作系统会为每一个进程分配一块虚拟内存空间&#xff01; 线程是系统调度最少的单位,操作系统分配时间片的过程&#xff0c;就是系统调度&#xff01; 线程也会占用时间片&#xff01; 2、线程的内存资源 线程的内存资源是…...

7.渐入佳境 -- 优雅的断开套接字连接

前言 本章将讨论如何优雅地断开相互连接的套接字。之前用的方法不够优雅是因为&#xff0c;我们是调用close或closesocket函数单方面断开连接的。 一、基于TCP的半关闭 TCP中的断开连接过程比建立连接过程更重要&#xff0c;因为连接过程中一般不会出现大的变数&#xff0c;…...

Django3 - 开启Django Hello World

一、开启Django Hello World 要学习Django首先需要了解Django的操作指令&#xff0c;了解了每个指令的作用&#xff0c;才能在MyDjango项目里编写Hello World网页&#xff0c;然后通过该网页我们可以简单了解Django的开发过程。 1.1 Django的操作指令 无论是创建项目还是创建项…...

JavaScript 基础特性

一、变量特性 1.1 变量提升 console.log(temp); // undefined&#xff08;变量提升但未初始化&#xff09; var temp hello; 现象&#xff1a;var声明的变量会提升至作用域顶部&#xff0c;但赋值不提升 建议&#xff1a;改用 let/const 避免变量提升问题 1.2 变量泄露 fo…...

MATLAB遇到内部问题,需要关闭,Crash Decoding : Disabled - No sandbox or build area path

1.故障界面 MATLAB运行时突然中断&#xff0c;停止运行。故障界面如图&#xff1a; MATLAB Log File: C:\Users\wei\AppData\Local\Temp\matlab_crash_dump.21720-1 ------------------------------------------------ MATLAB Log File -----------------------------------…...

L1-5 吉老师的回归

题目 L1-078 吉老师的回归&#xff08;15分&#xff09; 曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦&#xff01; 为了简化题目&#xff0c;我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来&#xff0c;如&#xff1a;Probl…...

0413-多态、Object类方法、访问权限修饰符、装箱拆箱、128陷阱

1:A and A 2:A and A 3: A and D 4: B and A 5: B and A 6:A and D 7:B and A 8: B and A 9:A and D package 第四章对象和类;public class ForthThir {//多态&#xff1a;父类的引用指向子类的对象,只能调父类的方法和子类重写的方法&#xff0c;不能调子类独有的方法&…...

Kubernetes控制平面组件:APIServer 准入控制机制详解

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes控…...

苍穹外卖day02

菜品相关接口开发 图片上传-阿里云OSS 依赖注入 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.sdk.oss}</version> </dependency> ​ 配置密钥 sky:alioss:end…...

SpringBoot 自定义输出控制台图标

对于控制台输出的这个图标大家都不陌生吧&#xff0c;不仅在SpringBoot中有这种图标&#xff0c;在docker 、 nginx 启动时都有自身独特的图标&#xff0c;这是怎么实现的呢。 需要利用一个网站生成 banner 图标&#xff08;首页-bootschool.net&#xff09;&#xff0c; 将图标…...

联想电脑开机出现Defalut Boot Device Missing or Boot Failed怎么办

目录 一、恢复bios默认设置 二、关机重启 三、“物理”方法 在图书馆敲代码时&#xff0c;去吃了午饭回来发现刚开机就出现了下图的问题&#xff08;崩溃&#xff09;&#xff0c;想起之前也发生过一次 这样的问题&#xff0c;现在把我用到的方法写在下面&#xff0c;可能对…...

CST1020.基于Spring Boot+Vue汽车租赁管理系统

计算机/JAVA毕业设计 【CST1020.基于Spring BootVue汽车租赁管理系统】 【项目介绍】 汽车租赁管理系统&#xff0c;基于 Spring Boot Vue 实现&#xff0c;功能丰富、界面精美 【业务模块】 客户管理&#xff1a;查询客户信息、根据条件精准检索、添加客户信息、身份证号校验…...

ArkTS基础语法:从声明到类型的深度解析

# ArkTS基础语法&#xff1a;从声明到类型的深度解析 在鸿蒙应用开发的领域中&#xff0c;ArkTS作为重要的编程语言&#xff0c;其基础语法是开发者们必须掌握的关键内容。今天&#xff0c;我们就围绕ArkTS的声明和类型相关知识展开深入探讨&#xff0c;帮助大家更好地理解和运…...

Day15:关于MySQL的编程技术——基础知识

前言&#xff1a;先创建一个练习的数据库和数据 1.创建数据库并创建数据表的基本结构 -- 创建练习数据库 CREATE DATABASE db_programming; USE db_programming;-- 创建员工表&#xff08;包含各种数据类型&#xff09; CREATE TABLE employees (emp_id INT PRIMARY KEY AUTO…...

wsl下编译eXosip和osip库(Ubuntu 22.04)

1.下载eXosip和osip osip下载路径 Index of /mirror/gnu.org/savannah/osip eXosip下载路径 Index of /nongnu/exosip 我选的osip和eXosip版本为 5.2.0 2.编译osip库 tar -zxvf libosip2-5.2.0.tar.gz cd libosip2-5.2.0 ./configure make make install 在编译…...

《轨道力学导论》——第九章:轨道确定与导航

第九章 轨道确定与导航 引言 轨道确定与导航是轨道力学中最为核心的实践领域之一&#xff0c;它将理论与实际应用紧密结合&#xff0c;解决了"我们在哪里"以及"我们将去向何方"这两个航天活动中最基本的问题。无论是地球轨道上的人造卫星、飞向深空的探测…...

几何与游标

在arcgis中,数据组织方式如下 数据库(datasets): 要素类(feature class): 几何(geometry) 属性(attribute) 元数据(metadata) 游标: 查询游标:用于对数据进行查询的游标 arcpy.da.SearchCursor() 作用&#xff1a;用于对数据进行只读查询操作。它可以帮助你逐行读取数据表或…...

【使用jenkins+docker自动化部署java项目】

背景: 有A(打包机129)&#xff0c;B(游戏服130) 2个机器&#xff0c;他们都安装有docker&#xff0c;请完成部署。 一、准备好java项目&#xff0c;写好Dockerfile # 基础镜像&#xff0c;使用包含 JDK 17 的 OpenJDK 镜像 FROM openjdk:17-jdk-slim# 设置工作目录 WORKDIR /…...

Vue3+Element Plus如何实现左树右表页面案例:即根据左边的树筛选右侧表功能实现

文章目录 一、最终效果二、源代码2.1 AddDataSource.vue2.2 LeftTree.vue2.3 FieldDrawer.vue2.4 RightTable.vue2.5 Emp.vue 三、代码解读3.1 AddDataSource.vue —— 数据源新增对话框3.2 LeftTree.vue —— 数据源树视图3.3 FieldDrawer.vue —— 字段详情抽屉3.4 RightTabl…...

Redisson的红锁,分段锁,公平锁,联锁。。。。。。

红锁&#xff1a;Redisson红锁可以防止主从集群锁丢失问题。Redisson红锁要求&#xff0c;必须要构建至少三个Redis主从集群&#xff0c;若一个请求要申请锁&#xff0c;必须向所有主从集群中提交key写入请求&#xff0c;只有当大多数集群&#xff08;过半集群&#xff09;锁写…...

system V 共享内存

system V是一种标准&#xff0c;linux内核支持这种标准&#xff0c;专门设计了一个ipc模板(通信的接口设计&#xff0c;原理&#xff0c;接口&#xff0c;相似性) 使用各自的虚拟地址访问物理内存 共享内存描述共享内存的内核数据结构它所对应的物理空间 进程间通信的本质&…...

ResNet改进(27):融合EfficientViT 高效混合网络设计

在计算机视觉领域,卷积神经网络(CNN)和视觉Transformer(ViT)各有优势。 今天分享的是一种将两者巧妙结合的方案——在ResNet18基础上引入轻量化ViT模块的设计思路。 整体架构概览 这个混合网络主要由三部分组成: ResNet18骨干网络:作为特征提取器,去掉了原模型的平均池化…...

字符串与栈和队列-算法小结

字符串 双指针 反转字符串(双指针) 力扣题目链接 void reverseString(vector<char>& s) {for (int i 0, j s.size() - 1; i < s.size()/2; i, j--) {swap(s[i],s[j]);} }反转字符串II 力扣题目链接 遍历字符串的过程中&#xff0c;只要让 i (2 * k)&#…...

go语言学习笔记:gin + gorm + mysql 用户增删改查案例入门

大家好&#xff0c;我是此林。 Golang 语言现在已经成为了编程的趋势&#xff0c;毕竟是大厂背书嘛&#xff0c;Google 研发的。 目前很多云原生项目都是基于 go 来编写的&#xff0c;比如&#xff1a; Kubernetes (K8s)​ 容器编排系统&#xff0c; Docker​ 容器化技术&…...

设计模式——建造者模式(生成器模式)总结

当我们需要创建一个非常复杂的对象时&#xff0c;可以使用建造者模式&#xff0c;分步骤建造一个对象&#xff0c;最后将完整的对象返回给客户端。 比如&#xff0c;我们要生成一个房子对象&#xff0c;建造一个房子&#xff0c;需要打地基、盖围墙、盖地板、安装门、安装窗户…...

Nginx代理Minio出现AccessDeniedAccessDenied

一、问题描述 AccessDeniedAccessDenied.sight.jpgmediafiles/mediafiles/sight.jpg1835E50603CB8FE0dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8 二、问题排查 &#xff08;1&#xff09;minio 和 nginx 是否正常启动 &#xff08;2&#xff09;检…...

在ArcGIS Pro中将栅格NoData值修改为特定值

目录 问题如下&#xff1a;栅格文件中NoData值为65535&#xff0c;要将该NoData值修改为-9999 步骤一&#xff1a;使用栅格计算器&#xff08;Raster Calculator&#xff09;输出具有新NoData值的栅格文件 步骤二&#xff1a;输出修改值后的栅格文件&#xff08;Export Rast…...

模糊表示学习 笔记

图表示学习通常从图的拓扑结构和高维节点属性中产生低维和清晰的表示。然而&#xff0c;节点或图的清晰表示实际上隐藏了特征的不确定性和可解释性。例如&#xff0c;在引文网络中&#xff0c;两篇论文之间的引用总是涉及表示相关度的future&#xff0c;也就是说&#xff0c;一…...

GitHub 趋势日报 (2025年04月12日)

本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ &#x1f4c8; 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1yeongpin/cursor-free-vip[Support 0.48.x]&#xff08;Reset Cursor AI MachineID & Auto Sign Up / In & Bypass Higher…...

FreertosHAL库笔记

堆和栈 堆&#xff1a;一块内存空间&#xff0c;用于存储程序运行时动态申请的内存空间。在堆上分配内存可以根据程序的需要灵活地申请和释放不同大小的内存块。可用pvProMalllloc()和vPortFree()函数来开辟和释放 栈&#xff1a;也是一块内存空间&#xff0c;主要用于函数调用…...

迷你世界脚本之容器接口:WorldContainer

容器接口&#xff1a;WorldContainer 彼得兔 更新时间: 2023-04-26 10:21:02 具体函数名及描述如下: 序号 函数名 函数描述 1 addFurnace(...) 新增熔炉 2 removeFurnace(...) 移除熔炉 3 checkFurnace(...) 检测是否为熔炉 4 getFurnaceHeatPerce…...

springboot框架集成websocket依赖实现物联网设备、前端网页实时通信!

需求&#xff1a; 最近在对接一个物联网里设备&#xff0c;他的通信方式是 websocket 。所以我需要在 springboot框架中集成websocket 依赖&#xff0c;从而实现与设备实时通信&#xff01; 框架&#xff1a;springboot2.7 java版本&#xff1a;java8 好了&#xff0c;还是直接…...

【linux知识】web服务环境搭建(一):用户以及开发环境初始化

toc 创建用户组以及用户 以下是 创建用户组 wendao 和用户 wendao 并指定 GID、UID 及家目录 的完整操作指南&#xff1a; 一、创建用户组&#xff08;指定 GID&#xff09; sudo groupadd -g 1500 wendao # 创建组并指定 GID 为 1500• 注意&#xff1a;GID 需唯一&#…...

消息中间件——RocketMQ(一)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 RocketMQ&#xff08;一&#xff09; 一、MQ出现的背景 在传统的单体应用架构中&#xff0c;系统的各个模块紧密耦合在一起。随着业务…...

[oeasy]python087_[词根溯源]suspend词源_append_depend

087_[词根溯源]suspend词源_append [词根溯源]suspend词源_append_depend 回忆上次内容 上次了解了 方法 和 函数的 不同之处 方法(method) 函数(function) 需要对象调用 无需对象调用 可以根据 名字调用 无需名字 直接调用 基于类的对象 独立的 需要self 不需要self…...

Ubuntu 安装 Cursor AppImage 到应用程序中

如果 Cursor AppImage 安装到 Ubuntu 系统中&#xff08;而不是每次手动运行 .AppImage 文件&#xff09;&#xff0c;可以按照以下方法操作&#xff1a; 方法 1&#xff1a;直接运行 AppImage&#xff08;最简单&#xff0c;但不完全“安装”&#xff09; 赋予执行权限chmod …...

二叉树 --- 堆(下)

今天我们来把堆完结了。 对于一个高度为 h 的满二叉树&#xff0c;有 F(h) 2 ^ 0 2 ^ 1 …… 2 ^ (h - 1) 2 ^ h - 1 h log2 (N1) 对于一个高度为 h 的完全二叉树&#xff0c;且最后一层只有一个 &#xff0c;则 F(h) 2 ^ 0 2 ^ 1 …… 2 ^ (h - 2) 1 2 ^ (h -…...

数组对象[object],五种如何去重方法 js

前言 数组有很多方法都可以实现去重。本章分享比较常用的。 准备工作 准备一组数组对象 let arr [{ id: "1", name: "张晓", age: 14 },{ id: "2", name: "张晓", age: 14 },{ id: "3", name: "张晓", age: 1…...

PyRoboPlan 库,给 panda 机械臂微分 IK 上大分,关节限位、碰撞全不怕

视频讲解&#xff1a; PyRoboPlan 库&#xff0c;给 panda 机械臂微分 IK 上大分&#xff0c;关节限位、碰撞全不怕 代码仓库&#xff1a;https://github.com/LitchiCheng/mujoco-learning 今天分享PyRoboPlan库&#xff0c;比之前的方式优点在于&#xff0c;这个库考虑了机械…...

【模态分解】EMD-经验模态分解

算法配置页面&#xff0c;也可以一键导出结果数据 报表自定义绘制 获取和下载【PHM学习软件PHM源码】的方式 获取方式&#xff1a;Docshttps://jcn362s9p4t8.feishu.cn/wiki/A0NXwPxY3ie1cGkOy08cru6vnvc...

Sentinel规则持久化pull模式核心源码解析

文章目录 前言一、服务端新增/修改规则1.1、repository.save1.2、publishRules 二、客户端接收规则三、持久化扩展3.1、持久化原理3.1.1、FileRefreshableDataSource3.1.1.1、super关键字3.1.1.2、firstLoad()方法 3.1.2、FlowRuleManager.register2Property 3.2、持久化实现 总…...

【go】--编译

go build -o [编译完成的可执行文件] [需要编译的.go文件]#例如 go build -o myapp main.go#确保编译的结果和当前运行环境相同 #查看arch uname -a在 Linux 中查看和修改 GOOS 和 GOARCH 环境变量&#xff1a; 1. 查看当前 Go 环境变量 # 查看所有Go相关的环境变量 go env# …...

【Spring底层分析】Spring IoC

Spring IoC IoC&#xff1a;控制反转。将对象创建和对象之间的调用交给Spring容器来管理。好处是降低了对象之间的耦合度。 DI&#xff1a;依赖注入。给bean对象注入依赖的对象。 大白话就是&#xff1a;Spring帮你创建对象&#xff0c;对象的属性如果依赖于某个对象&#xf…...

Ubuntu系统进程管理

在Ubuntu系统中&#xff0c;进程管理是系统维护和性能调优的重要部分。以下是关键命令和技巧的总结&#xff0c;帮助你有效管理系统进程&#xff1a; 1. 查看进程 ps 命令&#xff1a;查看当前进程快照。 bash ps aux # 查看所有运行中的进程&#xff08;a所有用户…...

HDU2196 Computer 树形DP

原题链接 既然要查找每个节点的最远到达距离&#xff0c;由于该图是个树&#xff0c;我们就找从根节点向下遍历方向的终点的距离与先返回父节点再从最优的父节点沿着原来的方向的终点的距离的最大值 如图所示 也就是说&#xff0c;我们需要获得当前点的正距离最大值和正距离最…...

【第四十周】文献阅读:用于检索-增强大语言模型的查询与重写

目录 摘要Abstract用于检索-增强大语言模型的查询与重写研究背景方法论基于冻结LLM的重写方案基于可训练重写器的方案重写器预热训练&#xff08;Rewriter Warm-up&#xff09;强化学习&#xff08;Reinforcement Learning&#xff09; 创新性实验结果局限性总结 摘要 这篇论文…...

Istio常用命令

Istio常用命令 1. 安装和配置2. Sidecar 注入3. 验证和状态4. 升级和卸载5. 故障排除6. 配置管理 istioctl 的常用命令及其详细说明&#xff1a; 1. 安装和配置 安装 Istio # 使用指定的配置文件&#xff08;如 demo&#xff09;安装 Istio 到 Kubernetes 集群。 istioctl m…...

Linux基础15

一、网络模型 二、eNSP模拟器 拖拽操作建立模拟网络环境 交换机视图操作&#xff1a; <> 用户视图 [] 系统视图 接口视图 协议视图 ​ display version #显示版本和设备型号 ​ display current-configuration #查看设备配置(查错) ​…...

FISCO BCOS群组扩容实战指南:从原理到操作全解析

引言&#xff1a;为什么需要群组扩容&#xff1f; 在区块链技术迅猛发展的今天&#xff0c;企业级应用对区块链平台提出了更高的要求。"如何在不影响现有业务的情况下扩展区块链处理能力&#xff1f;"、"能否实现不同业务数据的物理隔离&#xff1f;"、&qu…...

【pytorch图像视觉】lesson17深度视觉应用(上)构建自己的深度视觉项目

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、 数据1、认识经典数据1.1入门数据&#xff1a;MNIST、其他数字与字母识别&#xff08;1&#xff09;数据加载&#xff08;2&#xff09;查看数据的特征和标…...