首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Linux上的pthread多线程编程

2012-07-04 
Linux下的pthread多线程编程#include pthread.hint pthread_create(pthread_t *restrict tidp,const pth

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

即可

热点排行