하나의 시스템이 여러 작업을 동시에 처리하는 것 처럼 보이지만, 실제로는 한 번에 하나의 작업만을 처리하는 방식.
하나의 작업 내에서 여러 개의 서브 태스크(subtask)를 동시에 처리하거나 여러 개의 스레드를 생성하여 하나의 작업을 분할하여 처리 혹은 비동기적으로 여러 개의 작업을 처리합니다. 따라서 동시성은 작업이 독립적이지 않고 서로 의존성을 가지는 경우에 적합합니다.
멀티태스킹은 운영 체제에서 하나의 컴퓨터에서 여러 개의 프로그램이 동시에 실행될 수 있는 기능.
이는 CPU 시간을 분할하여 여러 프로그램이 동시에 실행되는 것처럼 보이도록 합니다. 멀티태스킹은 주로 운영 체제에서 제공되며, 여러 개의 프로세스나 스레드를 동시에 실행하고 관리하는 방법으로 구현됩니다.
병렬성은 실제로 여러 작업을 동시에 처리하는 것.
여러 CPU 또는 코어를 사용하여 여러 작업을 병렬로 처리할 수 있습니다. 병렬처리기는 여러 개의 CPU 또는 CPU 코어가 있어서, 각각의 작업이 서로 다른 CPU 또는 CPU 코어에서 병렬적으로 실행됩니다. 실행 시간을 줄이거나 처리량을 늘리는 데에 사용됩니다.
동시성, 멀티태스킹, 병렬성 셋의 의미가 비슷해 보여 헷갈린다. 이 동시에 처리하는 것처럼 보이는 것과 실제로 동시에 처리하는 것의 차이인 것 같은데 동시에 처리하는 것처럼 보이는 것을 이해하려면 차근차근 생각을 해봐야하는 것 같다.
하나의 작업을 위해 여러개의 서브 태스크를 동시에 돌리기 때문에 결국은 하나의 작업을 처리하는 것. 하나의 작업을 완성 시키기 위함이기 때문에 독립적이지 않고 작업이 서로 의존성을 가지고 있다.
Multi : 다중, 여러 가지
멀티태스킹을 보았을 때 헷갈릴 수 있는 것이 멀티에는 동시에라는 뜻이 존재하지 않는다. 그저 여러가지 작업을 하는 것인데 그것이 동시에 처리 되는 것 처럼 보일 뿐이다.
동시성과의 차이는 멀티태스킹은 하나의 시스템에서 여러 작업을 실행하는 것이고 동시성은 하나의 작업에서 여러 서브 태스크를 처리하는 것이다. 멀티태스킹이 조금 더 상위(?)의 느낌인듯하다.
동시성과는 다르게 여러 개의 작업을 여러 개의 코어와 CPU를 사용하여 작업을 진행하는 것으로 각 작업이 달라 독립적으로 실행된다.