Multithreading using pthread in C++ with shared variables

Posted by Saviour Self on Stack Overflow See other posts from Stack Overflow or by Saviour Self
Published on 2012-10-06T15:19:20Z Indexed on 2012/10/06 15:37 UTC
Read the original article Hit count: 209

I'm new to threading (and C/C++ for that matter), and I'm attempting to use multiple threads to access shared variables.

In the main, I've created a variable char inputarray[100];

Thread 1: This thread will be reading data from stdin in 2 byte bursts, and appending them to the inputarray. (input by feeding a file in)

Thread 2: This thread will be reading data 1 byte at a time, performing a calculation, and putting its data into an output array.

Thread 3: This thread will be outputting data from the output array in 2 byte bursts. (stdout)

I've attempted the input part and got it working by passing a struct, but would like to do it without using a struct, but it has been giving me problems.

If I can get input down, I'm sure I'll be able to use a similar strategy to complete output. Any help would be greatly appreciated.

Below is a rough template for the input thread.

#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;
}  

© Stack Overflow or respective owner

Related posts about c++

Related posts about multithreading