您的位置:首页 > 运维架构 > Linux

linux下多线程的使用 pthread_create()

2017-05-14 18:05 411 查看
原型:

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);


用法:#include  <pthread.h>
功能:创建线程(实际上就是确定调用该线程函数的入口点),在线程创建以后,就开始运行相关的线程函数。
说明:thread:线程标识符;
attr:线程属性设置;
start_routine:线程函数的起始地址;
arg:传递给start_routine的参数;
返回值:成功,返回0;出错,返回-1。


下面是一个多线程的简单例子

/*
XianCheng1.c
*/
#include<stdio.h>
#include<pthread.h>
#include <unistd.h>//调用延时
void *Thread_1(void*arg)
{
int m,*i=(int*)arg;
for(m=0;m<*i;m++)
{
printf("线程1 :%d\n",m);
sleep(1);//延时1秒
}
}
int main()
{
pthread_t pid1;
int p=5;
if(pthread_create(&pid1,NULL,Thread_1,&p)) return -1;
else
{
int n;
for(n=0;n<7;n++)
{
printf("主线程:%d\n",n);
sleep(1);//延时1秒
}
}
//等待线程结束
pthread_join(pid1,NULL);
return 0;
}


多线程编译的时候,不太一样

gcc XianCheng1.c -o XianCheng1 -lpthread


运行

./XianCheng1


可以看到结果

gcc XianCheng1.c -o XianCheng1 -lpthread
stu@ubuntu:~/zhangbing2/Mycode/XianCheng$ ./XianCheng1
主线程:0
线程1 :0
主线程:1
线程1 :1
主线程:2
线程1 :2
主线程:3
线程1 :3
主线程:4
线程1 :4
主线程:5
主线程:6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 linux