我是線程(和C/C++)的新手,我嘗試使用多線程來訪問共享變量。在共享變量的C++中使用pthread的多線程
在main中,我創建了一個變量char inputarray [100];
線程1:該線程將以2字節的突發讀取stdin中的數據,並將它們附加到輸入數組。 (通過輸入文件輸入)
線程2:此線程將一次讀取1個字節的數據,執行計算並將其數據放入輸出數組中。
線程3:該線程將以2個字節的突發從輸出數組輸出數據。 (標準輸出)
我試過輸入部分,並通過傳遞一個結構得到它的工作,但是想要做到這一點而不使用結構,但它一直給我的問題。
如果我可以得到輸入,我相信我可以使用類似的策略來完成輸出。任何幫助將不勝感激。
下面是輸入線程的粗略模板。
#include <stdio.h>
#include <pthread.h>
using namespace std;
void* input(void* arg) {
char reading[3];
fread(reading,1,2,stdin);
//append to char inputarray[]..???
}
int main() {
char inputarray[100];
pthread_t t1;
pthread_create(&t1, NULL, &input, &inputarray);
void *result;
pthread_join(t1,&result);
return 0;
}
謝謝你的迴應,這是非常有幫助的。爲了解決您的問題,這是一種處理數據的非常奇怪的方式。我正在試圖爲線程難以置信的特定數據文件起草一個模板。作爲一個短期目標,我試圖優化一個小型程序,該程序需要2 kb數據塊中的2.5 MB數據。至於單線程應用程序,我目前有這樣的程序,並且出於純粹的好奇心,我想嘗試線程以查看速度是否完全不同。 –