1. 프로세스
    1. 실행 중인 프로그램 하나, 메모리를 할당받고 독립적으로 돌아감
  2. 스레드
    1. 특징
      1. 프로세스 안에서 실행 흐름을 나눈 단위
      2. 프로세스가 집 전체라면, 스레드는 그 집 안에 따로 움직이는 사람들
      3. 하나의 프로세스에는 기본적으로 메인 스레드가 있고, 추가로 여러 개의 스레드를 만들 수 있음
      4. 한 프로그램 안에서 동시에 여러 작업을 처리할 수 있게 해주는 게 스레드
      5. 같은 프로세스 안에 있는 스레드들은 메모리(힙, 스태틱 영역)을 공유한다.
      6. 공유 덕분에 데이터 교환은 쉽지만, 동시에 접근하면 충돌이 날 수 있음 그래서 동기화 같은 개념이 필요하다.
    2. 종류
      1. 싱글 스레드
        1. 하나의 스레드만 사용 → 프로그램 실행 흐름이 하나
        2. main()만 있는 단순 프로그램
      2. 멀티 스레드
        1. 여러 스레드 동시에 실행
        2. 예시
          1. 채팅 프로그램 → 한 스레드는 메시지 수신, 다른 스레드는 화면 출력, 또 다른 건 파일 업로드