본문 바로가기
Programming/C#

[C#] 반복문 병렬 처리하기 - Parallel.For, Parallel.Foreach

by 타임박스 2020. 2. 19.
반응형


✔ 반복문 병렬 처리 

Parallel.For, Parallel.Foreach로 대용량 데이터 처리

반복문 처리 속도 개선



요즘 CPU 듀얼코어, 쿼드코어 등등 많은데 이 코어들이 병렬적으로 일을 함으로써 속도를 많이 높일 수 있다.

● Parallel 클래스

Parallel 클래스는 Parallel.For, Parallel.Foreach 가 있으며 우리가 흔히 사용하는 For문과 Foreach 문으로 생각하면 된다. Parallel 클래스의 For, Foreach는 다중 쓰래드로 병렬적으로 계산하면서 처리된다. 

하지만 무조건 속도가 빨라지는 것은 아니다. 무분별하게 사용할 경우는 오히려 더 느려지는 경우도 있다.

병렬 처리는 대량의 데이터를 처리하거나 복잡한 계산을 처리하는 경우에 사용해야한다.

병렬 처리라고 해서 비동기로 돌아가는 것이 아님!!! 일반적인 반복문과 동일함!! 

 

● 예제

public void ParallelTest()
{
	//처리 속도 확인용 
	System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
    watch.Start();
    
    Parallel.For(0, 50000000, i =>
    {
        //처리 할 내용 
    }
    
    watch.Stop();
    Console.WriteLine(watch.Elapsed.ToString());
}

 

일반 For문과 Parallel.For문으로 돌려보고 실행시간의 차이를 확인해보세요~

반응형

댓글