线程、线程信号量等常用函数小结

来源:互联网 发布:如何做好酒店网络销售 编辑:程序博客网 时间:2024/06/05 02:19

线程:

 

1.pthread_create

作用:创建一个线程

原型:int pthread_create(pthread_t *thread, pthread_attr_t *attr,

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

参数:thread:线程标识符

            attr: 线程属性

            start_routine: 线程的执行函数

            arg: 传入到线程执行函数的参数

返回值:成功:0

                   出错:< 0

头文件:#include <pthread.h>

 

2.pthread_exit

作用:退出

原型:void pthread_exit(void *reval);

 

3.pthread_join

作用:等待线程退出

原型:int pthread_join(pthread_t th, void **thread_return);

参数: th:线程标识符

            thread_return: 不为NULL,存储线程结束时的返回值

返回值:成功:0

                   出错:< 0

 

4.pthread_mutex_init

作用:初始化互斥锁

原型:int pthread_mutex(pthread_mutex_t *restrict mutex,

                                                 const pthread_mutex_attr_t *mutexattr)

参数:mutex:互斥锁

           mutexattr:PTHREAD_MUTEX_INITTIALIZER快速互斥锁

返回值:成功:0

                   出错:< 0

 

 

6.pthread_mutex_lock

作用:对互斥锁上锁

原型:int pthread_mutex_lock(pthread_mutex_t * mutex);

返回值:成功:0

                   出错:-1

 

7. 互斥上锁相关函数

原型:int pthread_mutex_unlock(pthread_t *mutex); //解锁

原型:int pthread_mutex_trylock(pthread_t *mutex); //判断上锁

原型:int pthread_mutex_destorylock(pthread_t *mutex); //破坏锁

 

线程信号量:

1.sem_init

作用:创建并初始化信号量

原型:int sem_init(sem_t *sem, int pshared, unsigned int value);

参数:sem:信号量

           pshared: 0

           value: 信号量的初始值

返回值:成功:0

                   出错:-1

头文件:#include <semaphore.h>

 

2.PV操作,销毁信号量等

原型:int sem_wait(sem_t *sem);-----P操作

           int sem_trywait(sem_t *sem)

           int sem_post(sem_t *sem);-----V操作

           int sem_getvalue(sem_t *sem);-----得到信号量

int sem_destory(sem_t *sem);-----销毁

参数:sem:信号量指针

返回值:成功:0

                   出错:-1

0 0
原创粉丝点击