220822)멀티 프로세싱, 멀티 스레딩, 동기, 비동기
멀티 프로세싱(Multi Processing)
다수의 프로세서가 여러 작업을 함께 처리하는 것을 뜻한다.
※프로세서: 프로그램을 수행하는 하드웨어 유닛 (프로세스와는 다름)
---
멀티 스레딩(Multi Threading)
일반적으로 하나의 프로세스는 한 개의 스레드를 가지고 작업을 수행한다. 그러나 멀티 스레드를 사용하면 하나의 프로세스 내에서 둘 이상의 스레드를 사용해 작업을 수행할 수 있다.
멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유하기 때문에 시스템 자원의 낭비를 줄일 수 있으며, 여러 스레드가 작업을 보조하기 때문에 사용자와의 응답성이 좋아진다.
참고: http://www.tcpschool.com/java/java_thread_multi
동기(Synchronous)
요청과 결과가 동시에 일어날 것이라는 약속을 한 상태. 요청을 하면 결과가 반드시 주어져야 한다.
간단하고 직관적인 방식이지만 결과가 도착할 때 까지 아무것도 안하고 대기해야 한다는 특징이 있다.
---
비동기(Asynchronous)
요청과 결과가 동시에 일어나지 않는다는 약속을 한 상태. 요청에 따른 결과가 보장되지 않는다.
동기방식보다 복잡하나, 결과가 도착하는 데에 시간이 걸리더라도 그 동안 다른 작업을 진행할 수 있어 자원을 효율적으로 사용할 수 있다는 특징이 있다.