Concurrent와 Parallel의 차이
- Concurrency(병행성/동시성)은 프로그램의 성질
- Parallelism(병렬성)은 기계의 성질이다
동시 처리를 위해 쓰레드를 여러 개 만들면 된다.
- CPU가 여러 개라면 동시에 쓰레드가 실행 중일 것이다 (병렬성)
- 그런데 적절한 잠금장치가 걸려있지만 않다면 문제를 일으킬 것이고 (병행성/동시성이 나쁨)
- 적절한 잠금장치를 사용한다면 문제가 없을 것이다 (병행성/동시성이 좋음)
정리하자면
- CPU가 여러개 달려있다면 병렬성이 확보된것이고,
- 동시에 여러개의 Task 들이 실행되어도 문제가 없도록 하는 것이 병행성/동시성을 확보하는 것.