Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Jun's Ark

[step-11] 멀티쓰레드 프로그래밍 본문

카테고리 없음

[step-11] 멀티쓰레드 프로그래밍

차가운보리차 2021. 3. 23. 06:22

# 프로세스란

하나의 프로그램으로 데이터와 메모리 등의 자원과 쓰레드로 구성

 

# 쓰레드

프로세스의 자원을 이용해서 실제 작업을 수행하는 역할

 

# 쓰레드 구현과 실행

1) Thread 클래스 상속

2) Runnable 인터페이스 구현 --> 다른 클래스 상속을 위해 구현이 일반적

결국 run 메서드에 실행할 코드를 적는다.

 

# start() & run()

- 쓰레드의 시작은 start()를 호출해야 한다. 그럼 start()가 실행할 스택을 만들고 그 안에 run메서드를 올려주는 역할

- 한번 실행된 쓰래드는 재사용 할 수 없고 다시 생성해야 하며 start()를 두 번 호출 하면 IllegalThreadStateException 발생

 

# main 쓰레드

- 가장 먼저 실행되는 쓰레드

- 모든 쓰레드는 메인 쓰레드로부터 생성

- 사용자 쓰레드, 데몬 쓰레드로 구분

- 실행 중인 사용자 쓰레드가 하나도 없을 때 프로그램 종료

# 쓰레드 그룹

- 쓰레드 그룹으로 관리되며 쓰레드 그룹에 대한 일괄적인 작업 처리가 가능하다

 

#데몬 쓰레드

- 일반 쓰레드의 보조 역할을 수행하는 스레드

- 일반 쓰레드가 종료되면 데몬 쓰레드는 강제적으로 종료된다.

- 일반적으로 무한 루프로 구현

- 일반 쓰레드와 작성방법이 같으며 단, 쓰레드를 생성한 다음 setDaemon(ture)를 호출하기만 하면 된다.

- 데몬 쓰레드가 생성한 쓰레드는 자동적으로 데몬 쓰레드가 된다.