Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

하나의 Task에대한 성능을 높이기보다,제한된 자원으로 전체적인 총량에 대한 처리에대해 효율을 높이는데 의미가 있습니다.

Code Block
languagec#
themeEmacs
linenumberstrue
Task task1;
Task task2;
Task task3;

//작업 3개가 동시에 시작합니다.
task1.Start();
task2.Start();
task3.Start();

...

가용한(풍부한) 자원을 바탕으로, 여러가지 작업을 한꺼번에 수행할수가 있습니다.

Code Block
languagec#
themeEmacs
linenumberstrue
//병렬처리를 위한 멀티 코어 프로그래밍 예 

Thread[] threads = new Thread[NumOfThread];

Process currentProcess = Process.GetCurrentProcess();
foreach (ProcessThread processThread in currentProcess.Threads) 
{ 
processThread.ProcessorAffinity = currentProcess.ProcessorAffinity;
}

//물리적단위인 Core(process) 에 Task를 명시적으로 걸고 동시에 시작해버립니다.
for (int i = 0; i < NumOfThread; i++) 
{ 
threads[i].Join(); 
}
}


...