全部博文(214)
分类:
2007-12-02 17:23:37
一、首先,简单了解一下多线程,从耳熟能详的fork()、pthread中理点头绪出来,然后自己写一个简单的来增加一下信心。
1、Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。因此,后面的编译必须在选项中加入 -lpthread 选项,否则提示找不到pthread_create()这些函数。
2、pthread_t 是一个线程的标识符,创建线程用pthread_create(),等待线程结束用pthread_join(),这样,差不多就可以开始写第一个简单的多线程程序了,简单得类似HelloWorld
下面的是我自己写的一个最简单的程序。
|
使用gcc -g -lpthread simpleone.c 编译
使用./a.out运行
结果:
This is thread 0 .
This is thread 1 .
This is the main thread 0 .
This is the main thread 1 .
This is thread 2 .
This is the main thread 2 .
不同的机器运行结果有可能不同,是由于两个“并行”的线程抢夺处理器资源造成的。而sleep(i)是我自作聪明的想法,仅仅是为了让结果看上去更加能体现两个线程是“并行”执行的,其实完全可以省去。