所需头文件 | #include <pthread.h> |
函数原型 | int pthread_create ((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)) |
函数传入值 | thread:线程标识符 |
attr:线程属性设置(其具体设置参见9.2.3小节),通常取为NULL | |
| start_routine:线程函数的起始地址,是一个以指向void的指针作为参数和返回值的函数指针 |
arg:传递给start_routine的参数 | |
函数返回值 | 成功:0 |
出错:返回错误码 |
所需头文件 | #include <pthread.h> |
函数原型 | void pthread_exit(void *retval) |
函数传入值 | retval:线程结束时的返回值,可由其他函数如pthread_join()来获取 |
所需头文件 | #include <pthread.h> |
函数原型 | int pthread_join ((pthread_t th, void **thread_return)) |
函数传入值 | th:等待线程的标识符 |
thread_return:用户定义的指针,用来存储被等待线程结束时的返回值(不为NULL时) | |
函数返回值 | 成功:0 |
出错:返回错误码 |
所需头文件 | #include <pthread.h> |
函数原型 | int pthread_cancel((pthread_t th) |
函数传入值 | th:要取消的线程的标识符 |
函数返回值 | 成功:0 |
出错:返回错误码 |
所需头文件 | #include <pthread.h> | |
函数原型 | int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr) | |
函数传入值 | mutex:互斥锁 | |
| Mutexattr | PTHREAD_MUTEX_INITIALIZER:创建快速互斥锁 |
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP:创建递归互斥锁 | ||
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP:创建检错互斥锁 | ||
函数返回值 | 成功:0 | |
出错:返回错误码 |
所需头文件 | #include <pthread.h> |
函数原型 | int pthread_mutex_lock(pthread_mutex_t *mutex,) int pthread_mutex_trylock(pthread_mutex_t *mutex,) int pthread_mutex_unlock(pthread_mutex_t *mutex,) int pthread_mutex_destroy(pthread_mutex_t *mutex,) |
函数传入值 | mutex:互斥锁 |
函数返回值 | 成功:0 |
出错:-1 |
所需头文件 | #include <semaphore.h> |
函数原型 | int sem_init(sem_t *sem,int pshared,unsigned int value) |
函数传入值 | sem:信号量指针 |
pshared:决定信号量能否在几个进程间共享。由于目前Linux还没有实现进程间共享信号量,所以这个值只能够取0,就表示这个信号量是当前进程的局部信号量 | |
value:信号量初始化值 | |
函数返回值 | 成功:0 |
出错:-1 |
所需头文件 | #include <pthread.h> |
函数原型 | int sem_wait(sem_t *sem) int sem_trywait(sem_t *sem) int sem_post(sem_t *sem) int sem_getvalue(sem_t *sem) int sem_destroy(sem_t *sem) |
函数传入值 | sem:信号量指针 |
函数返回值 | 成功:0 |
出错:-1 |
所需头文件 | #include <pthread.h> |
函数原型 | int pthread_attr_init(pthread_attr_t *attr) |
函数传入值 | attr:线程属性结构指针 |
函数返回值 | 成功:0 |
出错:返回错误码 |
所需头文件 | #include <pthread.h> | |
函数原型 | int pthread_attr_setscope(pthread_attr_t *attr, int scope) | |
函数传入值 | attr:线程属性结构指针 | |
scope | PTHREAD_SCOPE_SYSTEM:绑定 | |
PTHREAD_SCOPE_PROCESS:非绑定 | ||
函数返回值 | 成功:0 | |
出错:-1 |
所需头文件 | #include <pthread.h> | |
函数原型 | int pthread_attr_setscope(pthread_attr_t *attr, int detachstate) | |
函数传入值 | attr:线程属性 | |
detachstate | PTHREAD_CREATE_DETACHED:分离 | |
PTHREAD _CREATE_JOINABLE:非分离 | ||
函数返回值 | 成功:0 | |
出错:返回错误码 |
所需头文件 | #include <pthread.h> |
函数原型 | int pthread_attr_getschedparam (pthread_attr_t *attr, struct sched_param *param) |
函数传入值 | attr:线程属性结构指针 |
param:线程优先级 | |
函数返回值 | 成功:0 |
出错:返回错误码 |
所需头文件 | #include <pthread.h> |
函数原型 | int pthread_attr_setschedparam (pthread_attr_t *attr, struct sched_param *param) |
函数传入值 | attr:线程属性结构指针 |
param:线程优先级 | |
函数返回值 | 成功:0 |
出错:返回错误码 |
欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |