多线程处理

时间:2015-01-30 01:29:48

标签: multithreading semaphore

我有一个大尺寸的矩阵说20000 * 20000,这个矩阵不断改变每次迭代。矩阵在Fortran中生成,Fortran调用C ++函数,将矩阵处理成块对角线形式。我想让c ++函数创建两个线程(使用C ++ 11),每个线程将处理10000 * 10000.我可以很容易地将矩阵分成两部分,因为它是一个特殊的矩阵。矩阵元素不断改变每次迭代,如果我每次迭代创建并连接(kill)两个线程,那么头顶变得昂贵,并且使用多线程方法的点就会丢失。我决定在线程内进行迭代;但是,我不确定是否可以让线程等待更新的矩阵以便在下一次交互中解决(我们需要回到Fortran来计算新的矩阵)。

我坚持的观点如下: 当我从c ++中的函数创建两个线程时,该函数将返回到Fortran并且函数实例被销毁(对吗?)。当前正在等待新矩阵的两个线程会发生什么?

0 个答案:

没有答案