线程相关函数详解

本文详细介绍了pthread相关函数。包括线程创建、获取线程id、汇合终止线程、分离线程、终止当前线程、发送取消请求等线程操作函数,以及mutex锁的初始化、加锁、尝试加锁、解锁和销毁等操作函数,还说明了各函数的功能、参数和返回值。

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

1、pthread_create(3)
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
Compile and link with -pthread.

功能:创建一个新的线程
参数:
thread:存放的是新线程的id。
attr:NULL 默认属性
start_routine:线程执行的函数
arg:是start_routine函数的唯一参数

返回值:
0  成功
错误的情况下,返回错误号。
-------------------------------------------------
2、pthread_self(3)
#include <pthread.h>
pthread_t pthread_self(void);
Compile and link with -pthread.
功能:获取自己的线程id
参数:
void
返回值:
自己线程的id。
--------------------------------------------------
3、pthread_join(3)          //不太懂
#include <pthread.h>
int pthread_join(pthread_t thread, void **retval);
功能:汇合一个终止线程
参数:
thread:要汇合的线程的id
retval:存放要汇合的线程的退出状态

返回值:
0 成功
失败返回错误号
--------------------------------------------------
4、pthread_detach(3)
#include <pthread.h>
int pthread_detach(pthread_t thread);
功能:分离一个线程
参数:
thread:要分离的线程的id。
返回值:
0  成功
错误  返回错误号
---------------------------------------------------
5、pthread_exit(3)
#include <pthread.h>
void pthread_exit(void *retval);
功能:终止当前线程
参数:
retval:线程退出的状态码。

返回值:
void
----------------------------------------------------
6、pthread_cancel(3)
#include <pthread.h>
int pthread_cancel(pthread_t thread);
功能:给一个线程发送取消请求
参数:
thread:要取消的线程id。
返回值:
0  成功
错误   错误码
----------------------------------------------------
7、pthread_mutex_init(3)
#include <pthread.h>
pthread_mutex_t   fastmutex=PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t  recmutex=PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
int  pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr);
功能:初始化一个mutex锁
参数:
mutex:要初始化的mutex锁
mutexattr: NULL
返回值:

----------------------------------------------------
8、int  pthread_mutex_lock(pthread_mutex_t *mutex);
功能:加mutex锁,如果锁没有被其他线程占用,立即上锁并返回。如果被其他线程占用,阻塞等待锁的释放。
参数:
mutex:要操作的mutex锁
返回值:
0  成功
错误 返回错误码
----------------------------------------------------
9、int  pthread_mutex_trylock(pthread_mutex_t *mutex);
功能:尝试加锁。如果这个锁被其他线程占用,立即返回,设置错误码为EBUSY。
参数:
mutex:要操作的锁
返回值:
0  成功1
错误 返回错误码
----------------------------------------------------
10、int pthread_mutex_unlock(pthread_mutex_t *mutex);
功能:解除mutex锁
参数:
mutex: 指定要解除的mutex锁
返回值:
0  成功
错误 返回错误码
-----------------------------------------------------
11、int pthread_mutex_destroy(pthread_mutex_t *mutex);
功能:销毁mutex锁
参数:
mutex:要销毁的mutex锁
返回值:
0  成功
错误 返回错误码
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值