当前位置:  开发笔记 > 编程语言 > 正文

C#/ C++中的同步并行处理

如何解决《C#/C++中的同步并行处理》经验,为你挑选了0个好方法。

我有一个包含数据的数组x [].还有一系列"系统状态"c [].过程:

for(i = 1; i < N; i++)
{   
  a = f1(x[i] + c[i-1]);
  b = f2(x[i] + c[i-1]);
  c[i] = a + b;
}

有没有发现的价值的任何有效的方式f1,并f2使用2个并行线程2核心系统?我的意思是以下(伪代码):

thread_1
{
    for(i = 1; i < N; i++)
      a = f1(x[i] + c[i-1]);    
}
thread_2
{
    for(i = 1; i < N; i++)
    {
      b = f2(x[i] + c[i-1]);
      c[i] = a + b;  //here we somehow get a{i} from thread_1
    }
}

f1并且f2不是时间消耗,但必须多次计算,所以期望的加速大约是x2.请参见图表以获取图形表示:

期望的并行过程

寻找Windows的代码示例.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有