系统编程 day11 进程(线程)3

news2024/11/15 19:41:30

fork函数的总结:

总结对进程学习之中的回收函数wait

wait函数:

1.获取子进程的退出状态

2.回收资源------会让僵尸态的子进程销毁

注:1.wait函数本身是一个阻塞操作,会使调用者阻塞

2.父进程要获得子进程的退出状态

子进程:

exit函数(退出状态值)

退出状态值,只有最低8位有效(16进制的255)

父进程:

函数wait()

获取得到退出状态值

if(WIFEXITED())为真

WEXITSTATUS()再获得exit的退出状态值

waitpid函数:

功能:等待子进程状态发生变化

参数1:pid > 0

表示等待指定的子进程状态改变

pid = -1

表示等待所有子进程状态改变

参数2:wstatus:表示获取到子进程状态信息

参数3:options:可以不阻塞------不阻塞传宏WNOHANG,不传是默认为阻塞

wait(&wstatus) = waitpid(-1,&wstatus,0)

非阻塞调用:

waitpid(-1,&wstatus,WNOHANG)

非阻塞和阻塞:

1.阻塞:会影响父进程处理逻辑

2.非阻塞:父进程会去查看子进程状态发生改变,但是如果没有发生改变,父进程不阻塞,继续往下执行

非阻塞必须套在循环中处理      ====     轮询

小总结:

--------------------------------------------------------------------------------------------------------------------------------

多任务技术:线程

概述:

什么是线程:

线程------轻量级的进程

进程------重量级的进程

线程需要的资源少,创建的速度和效率比进程高

线程成为cpu执行的最小单元

进程成为资源分配的基本单位

线程的组成:

线程tid,程序计数器,寄存器集合,栈

线程与进程的关系:

a.线程是存在于进程之中的

b.线程共享了进程的资源

c.线程结束,不一定导致进程结束,反之,线程一定结束

线程的编程(类似于进程的编程):

1.线程的创建:

函数pthread_create

参数1:thread:线程tid

参数2:attr:线程属性,一般是NULL,表示默认属性(可结合性+分离属性)

可结合属性:手动回收

分离属性:系统自动回收

参数3:start_routine-------线程执行函数(线程回调函数)

(指向指针函数的函数指针)

是线程的回调函数,是线程的执行空间

参数4:arg,回调函数的参数

函数pthread_create 返回值:成功为0,失败为错误码

gcc时后必须加-lpthread

线程的退出:

函数pthread_exit()

功能:结束调用的线程

资源回收:

pthread_join()

功能:等待线程结束

参数1:thread------线程tid

参数2:retval------用来保存退出状态值所在空间的地址

函数

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

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

相关文章

解决STM32G474单片机_HAL_UART_Transmit_IT()连续发送之问题

在使用STM32G474单片机的HAL库时,使用“在中断服务程序中发送数据”和“在中断程序中接收数据”,是一种很常用的方法,特别是RS485通讯中。首次使用,肯定会踩坑。要么出现第一个数据收不到,要么出现连续发送&#xff0c…

米联客-FPGA程序设计Verilog语法入门篇连载-02 Verilog语法_基本设计方法

软件版本:无 操作系统:WIN10 64bit 硬件平台:适用所有系列FPGA 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1概述 本节主要讲解Verilog的基本设…

【屏驱MCU】增加自定义分区指南

说明:本文主要给出基于该款 点屏 MCU。增加自定义分区指南 屏驱MCU系列文章 【屏显MCU】多媒体接口总结(一) 【DVP接口】0v5640的DVP接口设计分析(硬件) 【DVP接口】0v5640的DVP接口设计分析(软件&#xff…

CCF-GESP8级考试—图论算法及综合应用(最小生成树)

🍉1 最小生成树的概念 1.1 连通图 🎈 连通图用于描述图中顶点之间是否存在路径相连。一个无向图中,如果从图中的任意一个顶点出发,都可以通过边的连接到达图中的任意其他顶点,则该图被称为连通图。 连通图的性质&…

为何众多卖家都选择入驻亚马逊VC?有什么优势?——WAYLI威利跨境助力商家

众多卖家选择入驻亚马逊VC(Vendor Central),主要是因为VC平台为卖家提供了一系列显著的优势。VC使卖家与亚马逊建立直接供应关系,提升曝光率和销售机会。作为全球领先电商平台,亚马逊拥有庞大用户群和完善物流体系&…

C#窗体自定义快捷操作键的实现 - 开源研究系列文章

这次想到应用程序的窗体的快捷操作键的使用的问题。 上次发布过一个快捷键的例子(https://www.cnblogs.com/lzhdim/p/18342051),区别在于它是操作系统全局注册的热键,如果其它应用程序注册了对应的热键,那就会失效。此例子是对某个窗体里的按…

AI驱动人才社区革新:智能化探索与实践

一、引言:AI赋能人才新生态 在21世纪的数字化浪潮中,人工智能(AI)技术以其强大的数据处理能力、学习优化算法及创新应用模式,正深刻地改变着各行各业的面貌,人才管理领域亦不例外。传统的人才社区&#xf…

yolo中的iou是什么意思

在YOLO(You Only Look Once)算法中,IoU 是“Intersection over Union”的缩写,中文可以理解为“交并比”。IoU 是一个用于衡量两个边界框(bounding box)重叠程度的指标。具体来说,IoU 是通过计算…

CUDA-MODE 第二课: PMPP 书的第1-3章

我的课程笔记,欢迎关注:https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/cuda-mode 第二课: PMPP 书的第1-3章 这节课非常基础,讲的都是基本概念和初级的注意事项,有CUDA基础的朋友可以不用花时间看。 PMPP …

C#语言基础速成Day06

“心之官则思,思则得之,不思则不得也。” 目录 前言文章有误敬请斧正 不胜感恩!||Day06 一、C#属性访问器、方法参数属性访问器(Property Accessors)方法参数(Method Parameters)综合示例 二、C…

小红书种草推广丨爆品层出不穷,品牌还能怎么「造新」?

当品牌已经被大众熟知,要如何在茫茫消费市场中脱颖而出,再度吸引用户的目光? 当品牌陷入增长困境,要如何再造爆品,打造增长的第二曲线,延长品牌的生命周期? …… 就这个大家关心的这些问题&…

三菱定位控制(一)

下面小编开始开始总结学习定位控制,以Q系列三菱PLC来展开学习,希望对读者或者小白有所帮助!!! 一 三菱PLC定位模块 为什么需要学习定位模块(三菱FXCPU能实现一个伺服电机的控制,多个要买定位模…

结构化输出及其使用方法

在 LLM 应用程序中构建稳健性和确定性 图片来自作者 欢迎来到雲闪世界。OpenAI最近宣布其最新的gpt-4o-2024–08–06模型支持结构化输出。与大型语言模型 (LLM) 相关的结构化输出并不是什么新鲜事——开发人员要么使用各种快速工程技术,要么使用第三方工具。 在本文…

异质性空间自回归模型 (HSAR)及 Stata 具体操作步骤

目录 一、引言 二、文献综述 三、理论原理 四、实证模型 五、稳健性检验 六、程序代码及解释 七、代码运行结果 一、引言 在空间计量经济学中,异质性空间自回归模型(Heterogeneous Spatial Autoregressive Model,HSAR)是一种…

深度优化Nginx负载均衡策略,携手Keepalived打造高可用服务架构新纪元

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#…

什么是数据仓库ODS层?为什么需要ODS层?

在大数据时代,数据仓库的重要性不言而喻。它不仅是企业数据存储与管理的核心,更是数据分析与决策支持的重要基础。而在数据仓库的各个层次中,ODS层(Operational Data Store,操作型数据存储)作为关键一环&am…

NVDLA专题4:具体模块介绍——Convolution DMA

概述 Convolution DMA Module的定义在NV_NVDLA_cmda.v中&#xff0c;其module的定义如下&#xff1a; module NV_NVDLA_cdma (cdma_dat2cvif_rd_req_ready //|< i,cdma_dat2mcif_rd_req_ready //|< i,cdma_wt2cvif_rd_req_ready //|< i,cdma_wt2mcif_rd_r…

【Nacos】docker部署nacos服务

docker部署nacos服务 1.直接执行命令2.如果网络出现问题 1.直接执行命令 docker run -e JVM_XMS256m -e JVM_XMX256m --env MODEstandalone \ --name mynacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \ docker.io/nacos/nacos-server:v2.1.12.如果网络出现问题 执行如下命…

计算机系统基础知识:计算机组成和基本原理

文章目录 1. 总线1.1 系统总线1.2 外总线 2. 中央处理单元2.1 CPU组成运算器控制器寄存器组内部总线 2.2 多核处理器 3. 存储系统3.1 分类3.2 层次结构3.3 主存储器3.4 高速缓存3.5 外存储器3.6 云存储 4. 输入/输出技术4.1 接口的功能和分类4.2 主机和外设间的连接方式4.3 编址…

定制化三防平板:满足个性化需求

定制化服务的核心在于理解并满足用户的个性化需求。对于三防平板而言&#xff0c;这意味着设备不仅需要具备防水、防尘、防摔的基本特性&#xff0c;更需根据用户的特定工作环境和使用习惯&#xff0c;进行功能和设计上的优化。 例如&#xff0c;对于在极端温度环境下作业的人…