Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5760651
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: C/C++

2006-10-05 09:31:23

昨天的时候,尝试了一下多线程编程。可是没有编译成功,今天早上查了一下,原来是编译的参数不对。

wangyao@fisherman:~/Desktop$ gcc -o hello hello.c
/tmp/cc2cjpPr.o:在函数‘main’中:
hello.c:(.text+0x49):对‘pthread_create’未定义的引用
hello.c:(.text+0x5c):对‘pthread_join’未定义的引用
collect2: ld returned 1 exit status
多线程的程序要加上一个 -lpthread参数,这样指定使用pthread库。
wangyao@fisherman:~/Desktop$ gcc -o hello hello.c -lpthread
wangyao@fisherman:~/Desktop$

代码:
#include
#include

void *thread(void *vargp)
{
    printf("Helo.world!\n");
    return NULL;
}

int main()
{
    pthread_t tid;
    pthread_create(&tid,NULL,thread,NULL);
    pthread_join(tid,NULL);

    return 0;
}

解释一下程序:
main标识主线程,在里面声明了一个本地变量tid,它用来存放对等线程的ID。主线程通过调用pthread_create,创建一个新的对等线程;当pthread_create返回时,主线程与对等线程并发执行,tid保存着对等线程的id号。
通过调用[thread_join,主线程等待对等线程的中止,最后主线程退出,中止这个进程中的所有线程。
阅读(1068) | 评论(0) | 转发(0) |
0

上一篇:查看主机信息

下一篇:再论多线程第一例

给主人留下些什么吧!~~