У меня проблема с отображением данных в нескольких потоках, потому что вывод находится в неправильном порядке, а некоторые строки смешаны. Моя многопоточная функция выглядит так, и она отображает все данные.
for (int i = 0; i < 3; i++)
{
pthread_create(&tid_array[i], NULL, find, &wData[i]);
}
for (int i = 0; i < 3; i++)
{
pthread_join(tid_array[i], NULL);
}
Теперь я хочу создать буфер, в который потоки будут записывать выходные данные, а затем создать один поток, который будет отображать все данные. Понятия не имею, как это сделать. Может кто-нибудь помочь мне? ИЗМЕНИТЬ Я не хочу использовать мьютекс.
РЕДАКТИРОВАТЬ 2
int rc;
for (int i = 0; i < 3; i++)
{
rc = pthread_create(&tid_array[i], NULL, find, &wData[i]);
}
for (int i = 0; i < 3; i++)
{
rc = pthread_join(tid_array[i], NULL);
}
pthread_t tid;
pthread_create(&tid, NULL, (void *)rc, NULL);
pthread_join(tid, NULL);
Это правильный путь? Функция find извлекает все данные.