1、线程创建
int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void* (*routine)(void*), void *arg);
2、合并线程
int pthread_join(pthread_t thread, void **retval);
3、获取线程id
pthread_t pthread_self(void);
4、结束当前线程
void pthread_exit(void* retval);
5、指定取消线程
int pthread_cancel(pthread_t thread);
例子:创建一个线程
#include <stdio.h>
#include <pthread.h>
void *thread(void *arg)
{
int i = 0;
pthread_t id = pthread_self();
printf("*(int *)arg = %d\n", *(int *)arg);
printf("pthread id = 0x%X\n", (unsigned int)id);
while (i < 10)
{
printf("this is thread!\n");
sleep(1);
}
return (void *)0;
}
int main(int argc, char **argv)
{
pthread_t id;
int arg = 100;
void *pthread_ret;
pthread_create(&id, NULL, thread, &arg);
while (1)
{
printf("this is main pthread!\n");
sleep(1);
}
pthread_join(id, &pthread_ret);
printf("pthread_ret = %d\n", (int)pthread_ret);
return 0;
}
编译时要加上-lpthread,否则编译不过。