线程

本文深入解析了使用GCC创建线程的方法,包括线程创建函数pthread_create的参数解释,线程等待函数pthread_join的工作原理,以及如何获取当前线程ID并进行清理操作。

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

gcc     filename    -lpthread

创建线程
        int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,void *(*start_rtn)(void),void *arg)
            tidp    线程id
            attr    线程属性(通常为空)
            start_rtn    线程要执行的函数
            arg    start_rtn  的参数

线程等待
        int pthread_join(pthread_t tid,void **rval_ptr)
    功能    阻塞调用线程,直到指定的线程终止
    Tid    等待退出的线程id
    Rval_ptr    线程退出的返回值的指针

线程标识
        pthread_t pthread_self(void)
        没有参数,返回值就为当前线程ID

清除        //先进后出
从pthread_cleanup_push的调用点到pthread_cleanup_pop之间的程
段中的终止运作(包括调用pthread_exit()和异常终止,不包括return
都将执行pthread_cleanup_push()所指定的清理函数。

void pthread_cleanup_push(void(*rtn)(void*),void*arg)
功能    将清除函数压入清除栈
        Rtn    清除函数
        Arg    清除函数的参数

void pthread_cleanup_pop(int execute)
功能    将清除函数弹出清除栈
参数    Execute执行到pthread_cleanup_pop()时是否在弹出
清理函数的同时执行该函数,非0:执行;0:不执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值