Linux下的pthread多线程编程
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp,
const pthread_attr_t *restrict attr,
void *(*start_rtn)(void),
void *restrict arg);
Returns: 0 if OK, error number on failure
第一个参数为指向线程标识符的指针。
第二个参数用来设置线程属性。
第三个参数是线程运行函数的起始地址。
最后一个参数是运行函数的参数。#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#define ERROR -1
#define OK 0
/*************************
*函数名:thread_function
*描述:线程函数,打印
*输入参数:无
*输出参数:无
*返回值:无
* **********************/
void *thread_function(void *arg)
{
int i = 0;
for ( i = 0; i < 20; i++)
{
printf("Thread says hi,%d!\n",i);
}
}
int main(void)
{
pthread_t mythread;
if ( pthread_create(&mythread,NULL,thread_function,NULL) )
{
printf("Error creating thread\n");
return ERROR;
}
/*等待另一个线程执行完毕*/
if ( pthread_join(mythread,NULL))
{
printf("Error Joining thread");
return ERROR;
}
printf("main over!\n");
return OK;
}gcc thread.c -o thead 编译一把:会报错,如下,
/tmp/ccIlZgdh.o: In function `main': thread.c:(.text+0x65): undefined reference to `pthread_create' thread.c:(.text+0x91): undefined reference to `pthread_join' collect2: ld 返回 1
需要更改一下,因为pthread默认是不在Linux库中的。
gcc thread.c -o -lpthread thread
即可
相关推荐
cuiweisaidelike 2020-08-02
comeonxueRong 2020-08-02
yunfeitian 2020-07-05
fengjing81 2020-05-08
Summer的小屋 2020-04-20
lemonzhangyan 2020-01-18
wanggongzhen 2020-01-09
LUOPING0 2010-09-30
Attend 2010-09-04
hazing 2011-03-05
batoom 2011-01-09
sprintwind 2012-06-06
christinzhm 2012-04-08
pointfish 2011-08-23
lfjjia 2010-09-27
taianxiaojia 2010-07-12