これは、C でスレッド化する最初の試みです。循環境界バッファーを作成しています。私はスレッドの作成方法を知っていますが、私が見たすべての例には、1 つの void パラメーターを受け入れるスレッド化された関数しかありませんが、残念ながら、私のワーカーの仕様では、次に示すように 3 つを使用する必要があります。
void bufferRead(BoundedBuffer* buffer, char* data, int count) {
pthread_mutex_lock(&buffer->mutexBuffer);
<snip>
pthread_mutex_unlock(&buffer->mutexBuffer);
}
ここに私の pthread_create ステートメントがあります
pthread_create(&buffer.readThread, NULL, (void *)bufferRead, &readParams)
そして私の readParams struct/assignments
struct readThreadParams {
BoundedBuffer b;
char* data;
int count;
};
struct readThreadParams readParams;
readParams.b = buffer2;
readParams.data = out_array;
readParams.count = in_size;
bufferRead 関数に渡した後に構造体の各パラメーターを割り当てる方法についてのアドバイスは大歓迎です。