int a[10];


thread_main( int id )

{

for( 루프 1억번 )

       a[id] += 랜덤값;

}


각각의 쓰레드는 고유한 아이디를 가집니다.

ex) 스레드 1번 a[0] += 랜덤값, 스레드 2번 a[1] += 랜덤값 ... 스레드 10번 a[9] += 랜덤값


서로 다른 스레드가 다른 데이터에 접근하기 때문에 락은 필요없습니다.

+1억이니 뭐니 하는 개소리들 쓰셔서 += 랜덤값으로 변경합니다.

랜덤값을 다 더했을때 int의 범위는 초과하지 않습니다.


멀티쓰레드 프로그래밍에서 이정도 성능 이슈는 기본중의 기본입니다.

정답은 10분뒤 공개합니다.


성능 저하의 원인을 서술하시오.