Versions Compared

Key

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

...

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


Thread[] threads = new Thread[NumOfThread];

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에만 국한된 문제가 아니기 때문에

단순한 쉬운예로 네트워크 모델을 대입시키면, 동시성은 하나의 장비 성능을 향샹시키는 스케일업, 병렬처리는 여러개의 장비를 활용하는 스케이아웃의 개념으로 확장이 될수 있습니다.

동시에 처리하느냐? 한꺼번에 처리하느냐? 의 문제는 CPU에만 국한된 문제가 아니기 때문입니다.

하지만 이런 처리영역 역시 명확하게 구분이 있는것이 아니며,  

조금더 복잡한 네트워크 모델에 적용을 시키면 다르게 해석이 가능합니다.

AKKA의 모듈중 Stream을 대입시키면 , AKKA는 네트워크 모델에서 여러가지의 장치를 이용하여 단순한 병렬처리가 아닌

작업단위를 쪼개어 Flow정의하고 분산환경에서 동시성처리가 가능합니다.( StrameSinkAndFlows ) ,

처리하는 분산환경에서 동시성처리를 위한 툴킷입니다.  ( Streams - Working with Graphs ) , 병렬처리의 경우 Akka에서는 route for cluster 로 해결합니다.

...