C语言中的线程间通信

作为我项目的一部分,我必须使用线程修改数值积分算法。

这大致是传统顺序方法中发生的情况。

void Controller(struct DE) { //initialization step for(;;) //till the entire range has not been covered... { //compute the next time-point solution using the previously known solutions. NIiter(); //then check if the result is acceptable or not and take the necessary steps... } } 

现在这就是我打算做的……

 void Controller(struct DE) { //initialization step for(;;) //till the entire range has been covered... { //compute the next time using the previously known solution. NIiter(); //when I have an approximate solution available..launch a thread to compute the next time-point using this approximate solution as a previous solution...something like forward pipelining... //then check if BOTH the results are acceptable or not and take the necessary steps... } } 

但我不明白如何通知我的控制器一个近似的解决方案是可用的…所以它可以启动一个新线程…

这是我第一次接触multithreading编程……所以请原谅我,如果这似乎是一个明显的问题……那么我在我的项目中使用Pthread库…

这是一个很大的话题,但这里有一些指示

  1. 工作线程 – 基本上创建一堆线程并具有任务队列。 他们从队列中选择一个并完成工作
  2. IPC – 这里有信号量,共享内存,消息传递。 链接在页面上

维基百科将帮助你。