Linux下多线程编程__线程的创建pthread_create与退出pthread_exit,等待当前线程退出pthread_join,获取线程ID pthread_self

Linux下多线程编程__线程的创建pthread_create与退出pthread_exit,等待当前线程退出pthread_join,获取线程ID pthread_self  

2010-11-24 12:31:06|  分类: Linux高性能开发 |举报 |字号 订阅

1、头文件:
         #include
 
2、线程描述符:
         pthread_t
 
3、创建线程:
         int pthread_create(   
                                           //获取创建出来的子线程的线程ID
                                           pthread_t *restrict thread,                            
                                           //设置线程的属性,通常使用NULL。
                                           const pthread_attr_t *restrict attr,                                                          
                                           //函数名,函数是线程运行的实体。这里是一个void *fun_name(void *value)的函数。
                                           void *(*start_routine)(void*),       
                                          //传递给子线程的变量(这里是将一个变量强制类型转换成void *类型,而不是取变量的地址。)   
                                           void *restrict arg
                                      );
 
4、阻塞等待指定的线程推出:
         int  pthread_join(
                                      //等待推出的线程ID
                                      pthread_t thread,
                                     //获取线程推出时的返回值
                                     void ** value_ptr;                      //这是一个void *类型变量的地址。
                                   );
 
5、线程退出:
       void pthread_exit(
                                   //将value_ptr所指向空间的值返回给等待它结束的线程。pthread_join等待的进程的返回只value_ptr的值来自pthread_exit的参数;
                                   void * value_ptr;
                                  );
      注意::
             pthread_exit函数有时候和return函数的作用是一样的,但是,如果在线程中调用了其他函数,在这个函数中使用return这个函数返回,线程并没有结束, 而在线程中调用的其他函数中使用pthread_exit(),那么整个线程就结束了,而不是这个函数结束。
 
6、获取线程的ID:
     pthread_t pthread_self();                     //获取当前线程的ID

你可能感兴趣的:(C++)