패러다임

참고 : https://lena-chamna.netlify.app/post/concurrency_programming_thread_and_queue/

비동기는 기본적으로 다른 스레드에 일을 위임하게 된다.

동시 프로그래밍(Concurrent Programming)

여러 쓰레드를 동시에 띄워서 동시에 프로그램들이 수행되는 것처럼 다루는 프로그래밍 방식.

일반적으로 태스크를 큐에 넣은 후 운영체제 레벨에서 이를 분산시켜 처리한다고 함

[참고]

병렬성은 작업들을 물리적으로 동시에 수행하기 때문에 하나의 작업의 응답시간을 줄일 수 있고,

동시성은 단일 작업의 응답시간을 줄일 수는 없지만, 한번에 여러작업을 처리해서 Throughput을 늘리는 데에 의미가 있습니다.

비동기 프로그래밍

하나의 쓰레드로 동시 처리를 하게 됨(실제로 뒤에서 다른 쓰레드들이 일을 함)

보통 WAS에서 CPU에 비해 I/O Bound가 큼. 이때 비동기 프로그래밍은 대기시간을 낭비하지 않고 그 시간에 CPU가 다른 일을 처리할 수 있도록 Non-Blocking하게 동작함.

프로세스