我是线程(和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数据。至于单线程应用程序,我目前有这样的程序,并且出于纯粹的好奇心,我想尝试线程以查看速度是否完全不同。 –