标签: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