의문점 공부하기/📌 Java

📌 병렬과 동시성의 차이점은?!

아리빠 2023. 7. 13. 19:36

병렬성(Parallelism): 병렬 처리는 여러 개의 작업을 동시에 실행하는 것을 의미

-여러 개의 독립적인 처리 장치 또는 CPU에서 각각의 작업을 처리하며, 작업들은 동시에 시작하고 종료할 수 있다.

- 병렬 처리는 계산 속도를 높이고 처리량을 향상시키는 데 사용된다


동시성(Concurrency): 동시성은 여러 작업을 동시에 실행하고 관리하는 행위

- 동시성은 단일 처리 단위 또는 순차 처리를 사용하여 시스템의 응답 시간을 줄이는 데 사용

- 작업들은 동시에 시작되지만, 동시에 처리되는것은 아니다.

- 동시성은 CPU에서 프로세스의 인터리빙 작업과 컨텍스트 스위칭을 통해 이루어진다


  • 병렬성은 여러 개의 작업을 동시에 실행하며, 병렬 처리 장치 또는 CPU에서 각각의 작업을 처리한다, 작업들은 동시에 시작하고 종료할 수 있다.

 

  • 동시성은 여러 작업을 동시에 실행하고 관리, 작업들은 동시에 시작되지만, 동시에 처리되지는 않는다. 동시성은 CPU에서 프로세스의 인터리빙 작업과 컨텍스트 스위칭을 통해 이루어진다

  • 스레드(Thread): 자바에서 스레드를 사용하여 병렬성과 동시성을 구현한다, 스레드는 동시에 실행되는 여러 작업을 관리하고, 작업들 간의 상호작용을 가능하게 해준다
  • 동기화(Synchronization): 동기화는 여러 스레드가 공유 자원에 안전하게 접근하도록 보장하는 메커니즘 synchronized 키워드를 사용하여 동기화된 블록을 만들거나, Lock 클래스를 사용하여 잠금을 설정할 수 있다. 동기화는 동시성 문제를 해결하고, 스레드 간의 상호작용을 조율하는 데 사용됨
  • 원자성(Atomicity): 원자적인 연산은 여러 스레드가 동시에 접근해도 안전하게 실행될 수 있는 연산. 자바에서는 java.util.concurrent.atomic 패키지에 있는 Atomic 클래스들을 사용하여 원자적인 연산을 수행할 수 있다. Atomic 클래스들은 병렬성과 동시성 문제를 해결하기 위해 사용된다