我想學習posix並想從somethig開始簡單。我想處理不同線程上的數組元素。我的代碼是:posix pthread在單獨線程中的數組元素上工作
#include <iostream>
#include <pthread.h>
using namespace std;
static void* doWork(int* a, size_t s) {
for(int i = 0; i < s; i++) {
a[i] = a[i] * 2;
}
//return void;
}
void printIntArr(int* a, size_t s) {
for(int i = 0; i < s; i++) {
cout << a[i] << " ";
}
cout << endl;
}
int main() {
int a[24];
for(int i = 0; i < 24; i++) {
a[i] = i;
}
printIntArr(&a[0], 24); //before
//I want to make 2 threads, and pass first half and second half of the array to process
pthread_t tA, tB;
int resultA = pthread_create(&tA, NULL, &doWork(&a[0],12), NULL);
int resultB = pthread_create(&tB, NULL, &doWork(&a[11],12), NULL);
printIntArr(&a[0], 24); //after
return 0;
}
我只是想對不同的線程陣列的上半年和下半年進行doWork
功能。是的,我的代碼不能編譯。
可能想'pthread_join'這些線程啓動它們後你懶得枚舉和打印非常的事情,他們是前修改。獲取有關pthreads的好書。這很值得。如果您使用的是相當新的C++(11或更高版本),請使用[''](http://en.cppreference.com/w/cpp/thread)。在現代C++線程世界裏,真正的晚餐是什麼。 –
WhozCraig