环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 计算机类 > 软件水平认证考试 > 考试辅导 >

2011年软件设计师辅导:并行排序算法(3)

2011-03-15 来源:互联网 作者:第一考试网

2011年软件设计师辅导:并行排序算法(3) #

  // Copy data to splited array

#

  for ( int i = 0 ; i < processorCount; i ++ ) #

  { #

  if (i == processorCount - 1 )

#

  { #

  partArray[i] = new ParallelEntity(Status.Idle, new T[remain], comparer);

#

  }

#

  else #

  { #

  partArray[i] = new ParallelEntity(Status.Idle, new T[partLen], comparer);

#

  remain -= partLen;

#

  } #

  Array.Copy(array, i * partLen, partArray[i].Array, 0 , partArray[i].Array.Length);

#

  } #

  // Parallel sort #

  for ( int i = 0 ; i < processorCount - 1 ; i ++ ) #

  {

#

  ThreadPool.QueueUserWorkItem( new WaitCallback(ThreadProc), partArray[i]);

#

  } #

  ThreadProc(partArray[processorCount - 1 ]); #

  // Wait all threads finish

#

  for ( int i = 0 ; i < processorCount; i ++ ) #

  {

#

  while ( true )

#

  { #

  lock (partArray[i])

#

  { #

  if (partArray[i].Status == ParallelSort < T > .Status.Finish) #

  { #

  break ; #

  } #

  }

#

  Thread.Sleep( 0 ); #

  }

#

  }

#

责编: 返回顶部  打印

关于我们联系我们友情链接网站声明网站地图广告服务帮助中心