标签:blog class code int string com
---恢复内容开始---
Example 1
Creating and terminating thread by using
pthread_create, pthread_exit(status)
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      26 
      27 
      28 
      29 
      30 
      31 
      32  | 
    
      #include <iostream>#include <cstdlib>#include <pthread.h>using 
namespace std;#define NUM_THREADS     5void *PrintHello(void 
*threadid){   long 
tid;   tid = (long)threadid;   cout << "Hello World! Thread ID, " 
<< tid << endl;   pthread_exit(NULL);}int 
main (){   pthread_t threads[NUM_THREADS];   int 
rc;   int 
i;   for( i=0; i < NUM_THREADS; i++ ){      cout << "main() : creating thread, " 
<< i << endl;      rc = pthread_create(&threads[i], NULL,                           PrintHello, (void 
*)i);      if 
(rc){         cout << "Error:unable to create thread," 
<< rc << endl;         exit(-1);      }   }   pthread_exit(NULL);} | 
compile it with g++ xxx.cpp -o test -lphread
Example 2
Passing Arguments to Threads
| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      26 
      27 
      28 
      29 
      30 
      31 
      32 
      33 
      34 
      35 
      36 
      37 
      38 
      39 
      40 
      41 
      42 
      43  | 
    
      #include <iostream>#include <cstdlib>#include <pthread.h>using 
namespace std;#define NUM_THREAD 5struct 
thread_data  {    int 
thread_id;    char 
*message;};void 
*PrintHello(void 
*threadarg)  {    struct 
thread_data *my_data;    my_data = (struct 
thread_data*) threadarg;    cout << "Thread ID : " 
<< my_data->thread_id << endl;    cout << "message : " 
<< my_data->message << endl;    pthread_exit(NULL);}int 
main()  {    pthread_t threads[NUM_THREAD];    struct 
thread_data td[NUM_THREAD];    int 
rc;    int 
i;    for(i = 0; i < NUM_THREAD; i ++)  {        cout << "main() : creating thread " 
<< i << endl;        td[i].thread_id = i;        td[i].message = "This is message";        rc = pthread_create(&threads[i], NULL, PrintHello, (void*)&td[i]);                 if(rc)  {            cout << "Error : unable to create thread " 
<< rc << endl;            exit(-1);        }    }    pthread_exit(NULL);} | 
Example 3
Joining and Detaching thread
---恢复内容结束---
C++ Multithread Tutorial,布布扣,bubuko.com
标签:blog class code int string com
原文地址:http://www.cnblogs.com/zhouzhuo/p/3710116.html