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

【Linux C程序设计】创建多线程

2015-06-04 09:47 573 查看
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>

void* thfn(void* arg)
{
pid_t pid;
pthread_t tid;

pid = getpid();
tid = pthread_self();

printf("the new thread :pid is :%u ,tid is %u\n",(unsigned int )pid,(unsigned int)tid);

return NULL;
}

int main()
{
pid_t pid;
int err;
pthread_t tid,mtid;

pid = getpid();
mtid = pthread_self(); //获取线程ID
err = pthread_create(&mtid,NULL,thfn,NULL);//创建线程

printf("%d\n",err);
sleep(1);//休眠一秒钟
printf("the main thread :pid is :%u ,tid is %u\n",(unsigned int )pid,(unsigned int)mtid);
}
pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。

问题解决:

在编译中要加 -lpthread参数

gcc thread.c -o thread -lpthread

thread.c为你些的源文件,不要忘了加上头文件#include<pthread.h>

编译gcc -lpthread printtid.c -o printtid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: