多线程的使用与解释

多线程是资源调用的最小单位,具有创建成本低、共享数据和独立执行等特点。pthread库提供了创建线程(pthread_create)、获取线程ID(pthread_self)、终止线程(pthread_exit)以及等待和分离线程(pthread_join,pthread_detach)的函数,用于有效管理线程生命周期和资源。线程的健壮性和编程复杂性是需要注意的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多线程

什么是多线程

是资源调用的最小单位。一个进程内部的控制序列。线程是调度的基本单位。

线程有共享进程的数据,也有自己 的一部分数据
在这里插入图片描述

线程特点

1,性能消耗小,创建代价小。

2,跟随进程同时进行存活

3,健壮性比较低,缺少保护

4,编程难度提高

5,多个线程享用一个地址空间

线程的使用

线程的创建

pthread_t tid;
pthread_create(tid,nullptr,要跑的函数,*arg);

成功返回0,失败返回错误码。这里返回的错误码可以使用strerror函数进行处理,可以输出相应的错误信息。不会返回错误信息到errno上面去。

image-20230411154850925

线程ID获得

int pid = pthread_self();

这样可以获得线程的ID

image-20230411154804187

线程终止

pthread_exit();

只可以进行自身调用进行终止

image-20230411155409878

线程等待

pthread_join(tid,nullptr);

进行之前线程推出的没有释放的资源进行释放,让其他的进程可以进行资源的复用(防止出现内存泄露)

image-20230411155500718

进程分离

pthread_detch();

进行线程分离工作之后,线程的存在活时间就不是由于主进程所决定的了,就是接受OS的管理进行退出等操作。可以线程对于自己进行退出,也可以其他的线程或者进程对于其他的线程进行分离。

image-20230411160623674

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值