pthread_create函数
原型:int pthread_create((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)
用法:#include
功能:创建线程(实际上就是确定调用该线程函数的入口点),在线程创建以后,就开始运行相关的线程函数。
说明:thread:线程标识符;
attr:线程属性设置;
start_routine:线程函数的起始地址;
arg:传递给start_routine的参数;
返回值:成功,返回0;出错,返回-1。
举例:
-
-
#include
-
#include
-
-
-
void thread_1(void)
-
{
-
int i=0;
-
for(i=0;i<=6;i++)
-
{
-
printf("This is a pthread_1.\n");
-
if(i==2)
-
pthread_exit(0);
-
sleep(1);
-
}
-
}
-
-
-
void thread_2(void)
-
{
-
int i;
-
for(i=0;i<3;i++)
-
printf("This is a pthread_2.\n");
-
pthread_exit(0);
-
}
-
-
int main(void)
-
{
-
pthread_t id_1,id_2;
-
int i,ret;
-
-
ret=pthread_create(&id_1,NULL,(void *) thread_1,NULL);
-
if(ret!=0)
-
{
-
printf("Create pthread error!\n");
-
return -1;
-
}
-
-
ret=pthread_create(&id_2,NULL,(void *) thread_2,NULL);
-
if(ret!=0)
-
{
-
printf("Create pthread error!\n");
-
return -1;
-
}
-
-
pthread_join(id_1,NULL);
-
pthread_join(id_2,NULL);
-
return 0;
-
}
以下是程序运行结果:
备注:pthread库不是Linux系统默认的库,连接时需要使用静态库libpthread.a,所以在线程函数在编译时,需要连接库函数,如上图 gcc pthread_create.c -o pthread_create -lpthread
阅读(844) | 评论(0) | 转发(0) |