如何将数据从一个正在运行的线程发送到另一个正在运行的c语言线程。 我想在主线程中生成数据,并在此循环的每次往返过程中通过循环将此数据发送到另一个线程。
// main
int j = 0; //initialize from 0
while (1) {
pthread_mutex_lock(&mutex[1]);
while (!flag[1])
pthread_cond_wait(&cond[1], &mutex[1]);
j++;
if (j > 12)
break;
data[0] = orders[j];
data[1] = j;
thread_data_array[1].kilometer = data[0];
thread_data_array[1].orders_num = data[1];
pthread_mutex_unlock(&mutex[1]);
if (j == 1) {
thread_data_array[1].th_num = 1;
pthread_create(&thread[1], NULL, threads, (void *) &thread_data_array[1]);
}
}
// another thread
data_th1 = (struct data_thread *) arg;
new_kilometer1 = data_th1->kilometer;
order_num1 = data_th1->orders_num;
num_th = data_th1->th_num;
//print results
但我只会获得往返的第一个价值。