이번 시간에 배울 것은
1. 프로세서, 코어, 프로그램과 프로세스, 스레드의 개념에 대해 알아봅시다
2. 비동기 프로그래밍과 동시성 프로그래밍에 대해 알아봅시다
3. 병렬성 프로그래밍에 대해 알아봅니다.
4. 동시성과 병렬성의 차이에 대해 알아봅니다
-프로세서는 컴퓨터 하드웨어 측면에서 프로그램을 수행하는 하드웨어 유닛이라 한다. 대표적으로 중앙처리장치를 말하며 컴퓨터 한대가 여러 프로세서를 갖는다면 멀티 프로세서라 한다.
-프로세서의 코어는 주요 연산회로인데. 싱글코어는 연산회로가 하나인것을 말하고 듀얼 코어는 연산회로가 두개가 내장되어있음을 말합니다. 멀티코어는 여러개의 연산회로를 말하는거구요.
-프로그램은 일반적으로 보조기억장치에 저장된 실행코드 즉 생명이 없는 상태를 말합니다. 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리에서 실행되는 작업 단위를 말합니다. 동시에 여러개의 프로세스를 운용하는 것을 멀티태스킹이라 하며 이는 운영체제에서 담당합니다.
-스레드는 프로세스 내에서 실행되는 작업흐름의 단위를 말합니다. 보통 한 프로세스는 하나의 스레드를 갖고 있는데 프로세스의 환경에 따라 동시에 둘 이상의 스레드를 실행할 수 있습니다. 이러한 방식을 멀티스레딩이라고 합니다. 그리고 프로그램이 시작될때 동작하는 스레드를 메인스레드 나중에 생성된 스레드를 서브 스레드 또는 세컨더리 스레드 입니다.