# 쓰레드란
(1) 쓰레드란?
- 하나의 프로그램이 하나이상의 독립적 서브 Task로 분리되어 실행될 때 각 서브 Task를 Thread라함.
- 각 쓰레드는 별개로 실행하면서 CPU를 공동으로 사용
- 경량(lightweight) 프로세스
- 다중 쓰레드: 하나의 프로세스에서는 동시에 여러 쓰레드가 실행. 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용
(2) 프로세스란?
- 실행중인 프로그램, 자원(resources)과 쓰레드로 구성된다.
(3) 쓰레드 Life Cycle
# 멀티 쓰레드의 장단점
- 멀티 쓰레드는 프로세스를 복사하는 것이 아니라 Function 단위로 실행시키는 것이다. 즉, 어떤 Function에서 다른 Function을 호출하면서 그 밑의 루틴을 다시 실행하는 것이다
- 이 것은 같은 프로세스이므로 멀티프로세스에 비해서 덜 부하를 준다. 그래서 경량 프로세스라고 하는 것이다.
...더보기
장점 |
"여러 모로 좋다" |
단점 |
"프로그래밍할 때 고려해야 할 사항들이 많다." |
# 멀티태스킹(Multi-Tasking)
- 멀티 태스킹
: 컴퓨터에서 각각의 일을 전담하는 해당 프로그램들(여러 개의 프로세스)이 동시에 실행되는 것
- 스케쥴링(Scheduling)
: 멀티 프로세스 시스템에서 각 프로세스는 동시에 실행되는 것처럼 보이지만, CPU가 하나이기 때문에 실행시간을 잘게 나누어 프로세스가 돌아가는데 각 프로세스들이 돌아가면서 CPU를 점유하는데 프로세스간 CPU 점유작업을 말한다.
'청년취업아카데미 > DayLog' 카테고리의 다른 글
[ Database ] Day 05 - ① Database Basic (0) | 2019.07.15 |
---|---|
[ Java ] Day 03 - ② Thread의 생성 (0) | 2019.07.11 |
[ Java ] Day 02 - ③ Collection Framework - ⑵ List 인터페이스 (0) | 2019.07.10 |
[ Java ] Day 02 - ③ Collection Framework (0) | 2019.07.10 |
[ Java ] Day 02 - ② 예외 처리 (0) | 2019.07.10 |