// 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 );
}
}
2011年上半年軟考報名時間及方式匯總軟考軟件設(shè)計師歷年真題匯總(2007年-2010年)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |