동시성 vs 병렬성

스크린샷 2024-06-19 오후 7.04.11.png

동시성 병렬성
동시에 실행되어 것 처럼 보이는 것
독립적인 작업을 작은 단위의 연산으로 나누어 시간을 분할하여 동시에 처리되는 것처럼 보임 실제로 동시에 여러 작업이 처리된다
싱글코어 멀티 스레드를 동작시키는 방식 멀티 코어에서 멀티 스레드를 동작시키는 것
한번에 많은 것을 처리한다 한번에 많은 일을 처리
논리적인 개념 물리적인 개념

자바의 동시성

자바는 동시성 프로그램 작성에 용이하지만, 안정성(safety)와 응답가능(liveness)상태를 유지하는 것은 어렵다.

  1. Java

  2. Java 5

  3. Java 7

  4. Java 8

동시성 스트림 사용

<aside> 💡 속도를 높이고자 스트림 파이프라인을 마구잡이로 병렬화해서는 안된다. → 성능이 나빠짐 (느려짐, 응답불가 상태) → 결과 자체가 잘못될 수 있음 → 예상하지 못한 동작이 발생할 수 있음

</aside>