如何将参数从一个线程连续传递到另一个线程?

时间:2017-02-17 12:30:25

标签: c multithreading

如何将数据从一个正在运行的线程发送到另一个正在运行的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

但我只会获得往返的第一个价值。

0 个答案:

没有答案