Versions Compared

Key

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

...

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


Thread[] threads = new Thread[NumOfThread];

출처: http://hsj0511.tistory.com/353 [방랑이 ...]
Process currentProcess = Process.GetCurrentProcess();
foreach (ProcessThread processThread in currentProcess.Threads) 
{ 
processThread.ProcessorAffinity = currentProcess.ProcessorAffinity;
}


for (int i = 0; i < NumOfThread; i++) 
{ 
threads[i].Join(); 
}
}
//쓰레드 개수가 CORE수를 넘었을때는, 완전한 형태의 병렬처리가 아닐수도 있습니다.


네트워크 모델을 대입시키면, 동시성은 하나의 장비의 성능을 향샹시키는 스케일업, 병렬처리는 여러개의 장비를 활용하는 스케이아웃의 개념으로 확장이 될수 있습니다. 동시에 처리하느냐? 한꺼번에 처리하느냐? 의 문제는 CPU에만 국한된 문제가 아니기 때문입니다.


Asynchronous vs. Synchronous

...



Non-blocking vs. Blocking

...


Deadlock vs. Starvation vs. Live-lock

...



Race Condition

...


Non-blocking Guarantees (Progress Conditions)

...


Wait-freedom


Lock-freedom


Obstruction-freedom