线程和等待数据

时间:2015-10-26 02:27:53

标签: c multithreading centos pthreads

这里新的;) 我已经开始使用CentOS上的线程,我需要一些关于线程特定问题的帮助,因为我是初学者。 我有2个数组 - 输入和输出。他们有相同的大小N.我也有TNO线程。每个线程在输入数据的N / TNO块上执行相同的操作,并将输出写入输出阵列的N / TNO部分。此外,TNO代表许多数据源(每个源一个线程)。主程序不断地从某个源接收数据,并且当一个源上的数据比另一个源上有更多数据时会发生。这是我想要实现的一些伪操作代码:

void *thread_function(void *argument){
while(1){
  wait for input data
  //DO SOMETHING
  send signal to main that thread work is done
  if(data_end)
    break

  }
}
main(){
initialization of variables
thread create
while(input_data){
  read input data
  send signal to threads that there is input data
  wait for all threads to finish their work
  write output data
  }
thread join
}

我正在研究很多但需要一些关于线程和线程到主线程的信号的帮助。除了输入和输出之外,我不想使用全局变量。此外,如果其中一个线程没有更多数据要处理,我也不需要继续执行线程函数的一部分。 我的主要问题是如何实现那些等待以及当我跳过DO SOMETHING(该线程没有更多数据)部分时该怎么做。

谢谢

0 个答案:

没有答案