news 2026/3/19 10:46:09

线程及其函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线程及其函数

一,线程定义及特征

1.概念:Linux中,线程是轻量级的进程,其属于某个进程。

2.特征:

进程是系统中最小的资源分配单位。

线程是系统中最小的执行单位。

进程中,线程与线程是平级关系。

在进程中,默认有一个主线程。

二,与线程的区别

线程进程
资源可共享资源独立
不稳定(一个线程崩溃,整个进程崩溃)相对稳定
线程创建需在进程空间中(8MB)需3GB空间
并发度高相较线程低

三,线程编程步骤

创建多线程 ->线程空间操作->线程资源回收(线程退出后,默认栈区不释放)

相关函数

1.线程的创建: pthread_create

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);

功能:可以创建一个线程。

参数:

thread 线程id,需要实现定义并由该函数返回。

attr 线程属性,一般是NULL,表示默认属性。

start_routine 指向指针函数的函数指针。

本质上是一个函数的名称即可。称为th回调函数,是线程的执行空间。

arg 回调函数的参数,即参数3的指针函数参数。

返回值:成功 0 ;失败 错误码

2.id号的获取:pthread_t pthread_self(void)

pthread_t pthread_self(void); unsigned long int; %lu

功能:获得当前线程的id

3.退出线程:(1)pthread_exit

void pthread_exit(void *retval); exit return p;

功能:子线程自行退出

参数:

retval 线程退出时候的返回状态。

无返回值。

(2)pthread_cancel

int pthread_cancel(pthread_t thread)

功能:请求结束一个线程

参数:thread 请求结束一个线程tid。

返回值:成功 0 ;失败 非0值;
4.线性空间的回收:pthread_join

int pthread_join(pthread_t thread, void **retval)

功能:通过该函数可以将指定的线程资源回收,该函数具有阻塞等待功能,如果指定的线程没有结

束,则回收线程会阻塞。

参数:thread 要回收的子线程tid

retval 要回收的子线程返回值/状态。ptread_exit(值);

返回值:成功 0 ;失败 非0值

四,分离属性

给某个线程设置的属性,如果线程设置了这个属性,那么,线程在退出后,相关资源(栈区)会

被系统回收,原来创建者,就不能回收了。目的线程消亡,自动回收空间。

函数:pthread_deatch

int pthread_deatch(pthread_t thread);

功能:设置分离属性

参数:线程id号,填自己的id

返回值:成功 0 ;失败 非0值;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 23:32:46

双指针妙解:如何用最少的船救最多的人

求解思路 这道题的关键在于利用贪心策略: 让最轻的人和最重的人尝试配对。 我们先对所有人按体重排序,然后用两个指针分别指向最轻和最重的人。 如果这两个人的体重和不超过限制,说明他们可以共用一艘船,那就让他们一起走,两个指针同时向中间移动; 如果超过限制了,说明最重的人…

作者头像 李华
网站建设 2026/3/14 23:07:19

百川大模型+BGE嵌入+LobeChat组合拳实战

百川大模型 BGE嵌入 LobeChat:打造私有化智能对话系统的实战路径 在企业级AI应用日益普及的今天,一个核心挑战浮出水面:如何在保障数据安全的前提下,构建既智能又易用的本地化对话系统?许多团队曾尝试基于OpenAI搭建…

作者头像 李华
网站建设 2026/3/13 0:48:46

电源CE认证需要准备哪些资料?

电源 CE 认证的资料准备需要覆盖电气安全、电磁兼容、能效、环保等所有合规维度的要求,需根据电源的类型(如普通适配器、工业电源、车载电源)略有调整,整体可分为通用基础资料、技术设计资料、测试相关资料、合规声明资料四类&…

作者头像 李华
网站建设 2026/3/14 11:44:42

Cesium快速入门24:Appearance编写着色器修改外观

上一节课,我们只在 Material 里写着色器;今天把“魔爪”伸到 Appearance——直接重写片元着色器,一样能让像素跳舞,而且套路更简单、更暴力。一、Appearance 也能“手写着色器”EllipsoidSurfaceAppearance 本质上就是“官方帮你拼…

作者头像 李华
网站建设 2026/3/17 17:10:37

基于STM32的智能水质检测鱼缸监测系统设计与实现

基于STM32的智能水质检测鱼缸监测系统设计与实现 摘要 随着人们生活水平的提高和对生活品质的追求,水族养殖和观赏鱼产业蓬勃发展。然而,水质管理是水族养殖的核心挑战,不当的水质参数会导致鱼类疾病甚至死亡。传统水质监测方法依赖人工定期…

作者头像 李华
网站建设 2026/3/16 12:03:37

leetcode 3562

3562: 折扣价交易股票的最大利润注:数据范围说 hierarchy.length n - 1,且 员工 1 是所有员工的直接或间接上司,所以输入是一个 n 点 n−1 边的连通图,即树。思路:树上背包 状态机 DP寻找子问题 站在节点 x 上&#…

作者头像 李华