线程相关函数

多线程编程

1:多线程相关基础知识

线程就是进程里的干活的东西  也是轻量级的进程

线程共享进程的资源   没有独立的资源

线程的优点

启动线程消耗的资环更少

线程的切换要比进程的切换快

维护线程花费的资源要比维护进程划分的资源更少

线程的通讯比进程的通讯更简单  因为线程共享数据

线程的缺点

一死俱死

如何选择线程还是进程

频繁切换时候  用线程

大量的数据计算 用线程

操作相关性比较大 用线程  相关性比较小用进程

都满足   优先选择你最拿手的

2:线程相关的API

函数的功能:

获取线程号

函数的头文件

pthread.h

函数的原型

pthread_t pthread_self(void);

函数的返回值:

成功返回  线程的id

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

函数的功能:(重点)

创建一个线程

函数的头文件

#include <pthread.h>

函数的原型

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

                          void *(*start_routine) (void *), void *arg);

函数的参数

pthread_t *thread,       用来存放线程的ID的变量

const pthread_attr_t *attr, 线程的属性     NULL表示使用默认属性

                void *(*start_routine) (void *), :线程的回调函数

void *arg   :传给回调函数的参数

函数的返回值

成功返回  0

失败返回  错误码

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

函数的功能:

退出线程

函数的头文件

pthread.h

函数的原型

void pthread_exit(void *retval);

函数的参数

void *retval:0表示正常退出   

函数的返回值

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

函数的功能:

等待线程的退出

函数的头文件

pthread.h

函数的原型

int pthread_join(pthread_t thread, void **retval);

函数的参数

pthread_t thread,   要等待的线程的id

void **retval       退出的状态  一般填NULL

函数的返回值

成功返回  0

失败返回  非零

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

函数的功能:

取消一个线程的执行

函数的头文件

pthread.h

函数的原型

int pthread_cancel(pthread_t thread);

函数的参数

pthread_t thread:要取消的线程的ID

函数的返回值

成功返回   0

失败返回 错误码

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++4

函数的功能

退出清理函数

函数的头文件

pthread.h

函数的原型

void pthread_cleanup_push(void (*routine)(void *),

                                 void *arg);

        void pthread_cleanup_pop(int execute);

函数的参数:

void (*routine)(void *),   退出清理函数的回调函数     返回任意指针void*;

              void *arg   :传给回调函数的参数

int execute:是否调用退出清理函数

0 不调用 不执行

1 调用 进行执行

+++++++++++++++++++++++++++

退出清理函数的特点

1:当线程被取消执行的时候  不调用退出清理函数

2:在pthread_cleanup_pop函数之前假如结束了线程的执行

无论使能的参数是0 还是1  都会调用退出清理函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值