1.Thread(스레드)
1)개념
- 실, 흐름, 맥락
- 코드 실행의 흐름
- main Thread : main 메서드를 실행
- 일반적인 웹에서는 웹서버에서 사용
- 컴퓨터 상에서 여러가지 일을 동시에 해야 할 때, main tread 외에 work thread를 더 추가로 생성해서 일을 시킴(=노예 추가)
2) 생성 방법
- 상속 extents
-인터페이스 implements
3) 실행 지연
- sleep
- join
4) 동기화
- 멀티 스레드 사용 시, 스레드의 제어권은 정해져 있지 않음
→언제든 다른 스레드에 제어권이 넘어감(context )
→값의 왜곡이 충분히 발생할 수 있음
- 그래서 스레드 간의 rule을 세움(=동기화 처리)
- 연산의 안전한 마무리까지 스레드 제어권을 유지해야 함
- 윈도우는 스레드 배분 시간이 부정확함
5) 스레드 종료
- 계속 동작해야 하는 스레드에서 while문을 종종 사용
* 이 스레드를 종료하기 위해서는 boolean stop을 사용하면
* stop이 true일 때 이상 만복되지 않고 종료
* printThread.setStop(true);
- InterruptedException 사용
*thread에 run()을 InterruptedException를 throw함\
2. 데몬 스레드(종속 스레드, Daemon Thread)
- 부모 스레드가 종료되면 자식도 함께 종료
- 일반적으로는 자식 스레드는 부모와 별개로 동작
- 불편해서 그냥 별개로 동작하도록 만들었고 setDaemon(true)일 때 종속적이도록 만듦
3. 스레드 풀
- 스레드 객체를 많이 만들어서 모아두는 곳
- 속도 향상을 위해 미리 만들어두고 사용
- 대용량 서버를 만들 때 사용(?)
- like 식당 테이블 회전률
- 종류
- Runnable: ExecutorService, void, 리턴 값 없음
- Callable: Furture 객체, 리턴 값 있음
'네이버클라우드캠프' 카테고리의 다른 글
네이버클라우드캠프 47일차(3/13) (0) | 2024.03.13 |
---|---|
네이버클라우드캠프 15일차(2/14) (0) | 2024.02.14 |
네이버클라우드캠프 12일차(2/7) (0) | 2024.02.07 |
네이버클라우드캠프 11일차(2/6) (0) | 2024.02.06 |
네이버클라우드캠프 5일차(1/29) (0) | 2024.01.29 |