c/c++: 多线程编程基础讲解(一)

利用几篇文章简单记录下c与c++多线程编程基础入门的东西,每篇一个程序来记录,备忘。这些章节是由浅入深组织的,赖死狗!

在注释中讲吧,佛楼米!

  1. #include <iostream>  
  2. #include <pthread.h>//头文件是必须的,符合posix标准使程序可移植众多平台  
  3.   
  4. using namespace std;  
  5.   
  6. #define NUM_THREADS 5  
  7.   
  8. void* say_hello(void* args)//线程的运行函数,必须void*,没说的表示返回通用指针、输入通用指针  
  9. {  
  10.     cout << "hello..." << endl;  
  11. }  
  12.   
  13. int main()  
  14. {  
  15.     pthread_t tids[NUM_THREADS];//定义线程的id变量,多个变量可以声明为数组使用  
  16.     for(int i = 0; i < NUM_THREADS; ++i)  
  17.     {  
  18.         int ret = pthread_create(&tids[i], NULL, say_hello, NULL);//参数依次是:创建的线程id,线程参数,调用函数名,传入的函数参数  
  19.         if (ret != 0)  
  20.         {  
  21.            cout << "pthread_create error: error_code=" << ret << endl;  
  22.         }  
  23.     }  
  24.   
  25.     pthread_exit(NULL);//等各个线程退出后,进程才结束,否则进程强制结束了,线程可能还没反应过来;  
  26. }  

编译命令:

g++ -lpthread -o test.out test.cpp

其中调用静态库文件pthread是必须的,然后运行测试,欧文!

    1. [cpp@node2 pthread]$ ./ex_create  
    2. hello...  
    3. hello...  
    4. hello...  
    5. hello...  
    6. hello...  
    7. [cpp@node2 pthread]$  
posted @ 2012-09-04 12:13  董雨  阅读(1314)  评论(0编辑  收藏  举报