这是我第一次尝试在 C 中进行线程化。我正在创建一个循环有界缓冲区。我知道如何创建线程,但我看到的所有示例都只有接受一个 void 参数的线程函数,但不幸的是我的工人规范要求我使用三个,如下所示:
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 readThreadParams {
BoundedBuffer b;
char* data;
int count;
};
struct readThreadParams readParams;
readParams.b = buffer2;
readParams.data = out_array;
readParams.count = in_size;
任何关于如何在传递给 bufferRead 函数后分配每个结构参数的建议将不胜感激。