Linux 一个简单的多线程程序

news2024/12/24 8:15:56

一个简单的多线程程序

编写一个简单的多线程程序

代码如下:

在这里插入图片描述

运行结果:

在这里插入图片描述

出现这样的运行结果是因为主函数直接就运行完了,直接5次循环就结束了,线程函数还没有来得及执行,整个进程就已经结束了。因为主函数退出之后系统会自动调用exit来退出整个进程,相当于直接把当前进程结束了,不管有多少条执行路径都随之退出了。

由于以上代码的执行结果并不理想,主线程和子线程好像并没有同时运行,修改以上代码,如下图所示:

在这里插入图片描述

在主线程和子线程每次输出数据之后都睡眠1秒,这时就可以看到,两个进程是同时执行的,至于执行的顺序没有固定顺序,运行结果如下图:

在这里插入图片描述

pthread_join 方法,等待线程退出,线程未退出时,使用该方法阻塞 。

这个方法是当主线程执行完之后不直接退出进程,而是等待子线程执行,等子线程执行完之后系统才会调用exit来退出进程。

将代码修改如下:

在这里插入图片描述

运行结果如下:

在这里插入图片描述

由结果可以看出,主线程和子线程同时执行。

pthread_exit()和pthread_join()方法的结合使用:

在这里插入图片描述

运行结果:

在这里插入图片描述

由结果可以看出,在主线程结束之后等子线程执行完,然后主线程接收了子线程的退出信息,并将该信息输出之后,该进程才结束。

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

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

相关文章

MySQL卸载-Linux版

MySQL卸载-Linux版 停止MySQL服务 systemctl stop mysqld 查询MySQL的安装文件 rpm -qa | grep -i mysql 卸载上述查询出来的所有的MySQL安装包 rpm -e mysql-community-client-plugins-8.0.26-1.el7.x86_64 --nodeps ​ rpm -e mysql-community-server-8.0.26-1.el7.x86_64 -…

磁盘满了怎么办?实用小技巧,做不做测试都非常好用!

♥ 前 言 工作了多年的测试,应该多少都会遇到磁盘空间不够的情况,比方你现在正在用的测试环境,因为要测试,所以,项目一直启动,那么就会一直在写日志,如果不定期清理日志,随着时间…

第一百三十三天学习记录:数据结构与算法基础:串、数组和广义表(串Ⅱ)(王卓教学视频)

注:在之前学习C语言的时候,了解过这一块。其中对KMP算法进行了自学,前面的学习记录也有提到过。这一次根据视频教学再系统性的学习学习一次。 串的模式匹配算法 KMP算法

漏洞指北-VulFocus靶场专栏-初级01

漏洞指北-VulFocus靶场专栏-初级 初级001 🌸海洋CMS代码执行(CNVD-2020-22721🌸step1:进入后台页面 账号密码:admin amdinstep2:点击系统,点击后台IP安全设置,关闭step3 启动burpsuite&#xff…

Yolo算法与ChatGPT互通,这功能是真的强大!

点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID|计算机视觉研究院 学习群|扫码在主页获取加入方式 参考地址:https://github.com/ultralytics/ultralytics 计算机视觉研究院专栏 Column of Computer Vision Institute 现…

深入浅出解析Stable Diffusion XL完整核心基础知识 | 【算法兵器谱】

Rocky Ding 公众号:WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文,并对具备划时代意义的模型&论文进行全方位系统的解析,比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也欢迎大家提…

计网第三章(数据链路层)(三)

一、点对点协议PPP 在第一篇里有提到数据链路层的信道分为两种:点对点信道和广播信道。 PPP协议就属于点对点信道上的协议。 如果对前面数据链路层的三个基本问题了解的比较透彻,那么这一块很多东西都很好理解。 从考试的角度来讲,PPP协议…

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计…

RabbitMq-2安装与配置

Rabbitmq的安装 1.上传资源 注意:rabbitmq的版本必须与erlang编译器的版本适配 2.安装依赖环境 //打开虚拟机 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz3.安装erlan…

OpenCV笔记之solvePnP函数和calibrateCamera函数对比

OpenCV笔记之solvePnP函数和calibrateCamera函数对比 文章目录 OpenCV笔记之solvePnP函数和calibrateCamera函数对比1.cv::solvePnP2.cv::solvePnP函数的用途和工作原理3.cv::solvePnP背后的数学方程式4.cv::SOLVEPNP_ITERATIVE、cv::SOLVEPNP_EPNP、cv::SOLVEPNP_P3P5.一个固定…

AI项目二:基于mediapipe的虚拟绘画

若该文为原创文章,转载请注明原文出处。 一、项目介绍 随着人工智能时代的到来,许多技术得到了空前的发展,让人们更加认识到了线上虚拟技术的强大。 通过mediapipe识别手的关键点,检测中指,实现隔空画画的操作。 通…

Linux/Ubuntu 的日常升级和安全更新,如何操作?

我安装的是Ubuntu 20.04.6 LTS的Windows上Linux子系统版本,启动完成后显示: Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.4-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.c…

ros小车实现slam_gmapping建图

ros小车2d建图,如果有雷达,那么使用gmapping方式建图,其实就一个命令,启动建图程序,它默认会启动小车,之后,我们通过手柄或者键盘控制小车就可以有地图产生,然后就需要保存地图&…

【高级IO】- 五种 IO 模型 | 多路转接 - select

IO的基本概念 I/O(Input / output)就是输入和输出,在冯诺依曼体系中,将数据从输入设备拷贝到内存叫做输入,将数据从内存拷贝到输出设备叫做输出。 对文件进行的读写操作本质就是一种IO,文件IO对应的外设就…

【2023最新爬虫】爬取知乎任意问题下的全部回答

老规矩,先上结果: 爬取了前200多页,每页5条数据,共1000多条回答。(程序设置的自动判断结束页,我是手动break的) 共爬到13个字段,包含: 问题id,页码,答主昵称,答主性别,…

【Python】json文件的读取

文章目录 1. json简介2.json的使用规范3.json文件的书写4.json文件的读取 1. json简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将结构化数据进行传输和存储。它基于JavaScript语法,但可以被多种编程…

玩机搞机----面具模块的组成 制作模块

root面具相信很多玩家都不陌生。早期玩友大都使用第三方卡刷补丁来对系统进行各种修复和添加功能。目前面具补丁代替了这些操作。今天的帖子了解下面具各种模块的组成和几种普遍的代码组成。 Magisk中运行的每个单独的shell脚本都将在内部的BusyBox的shell中执行。对于与第三方…

(排序) 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 ——【Leetcode每日一题】

❓剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 难度:简单 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。 示例: 输入:nums [1…

绘制原型图的常用工具之墨刀

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于OA项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.墨刀是什么 二.墨刀的作用 三.墨刀界…

opencv-手势识别

# HandTrackingModule.py import cv2 import mediapipe as mpclass HandDetector:"""使用mediapipe库查找手。导出地标像素格式。添加了额外的功能。如查找方式,许多手指向上或两个手指之间的距离。而且提供找到的手的边界框信息。"""…