반응형
1초 주기로 save()메소드를 호출하는 데몬 스레드
메인스레드가 실행하는 코드
*책의 실행 결과는 (책의 실행결과 잘못 된듯 책처럼 나오려면 sleep를 3000->4000으로변경해야함)
작업 내용을 저장함.
작업 내용을 저장함.
작업 내용을 저장함.
메인 스레드 종료
- 프로세스 : 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션이 실행되는데, 이것을 프로세스라고 합니다.
- 멀티 스레드 : 하나의 프로세스 내에 동시 실행을 하는 스레드들이 2개 이상인 경우를 말합니다.
- 메인 스레드 : 자바의 모든 애플리케이션은 메인 스레드가 main() 메소드를 실행하면서 시작합니다. 메인 스레드는 main() 메소드의 첫 코드부터 아래로 순차적으로 실행하고, main() 메소드의 마지막 코드를 실행하거나 return문을 만나면 실행이 종료됩니다.
- 작업 스레드 : 메인 작업 이외에 병렬 작업의 수만큼 생성하는 스레드를 말합니다. 작업 스레드도 객체로 생성되기 때문에 클래스가 필요합니다. Thread 클래스를 직접 객체화해서 생성할 수도 있고, Thread 클래스를 상속해서 하위 클래스를 만들어 생성할 수도 있습니다.
- 동기화 메소드 : 멀티 스레드 프로그램에서 단 하나의 스레드만 실행할 수 있는 코드 영역을 임계 영역 이라고 합니다. 자바는 임계 영역을 지정하기 위해 동기화 메소드를 제공합니다. 스레드가 객체 내부의 동기화 메소드를 실행하면 즉시 객체에 잠금을 걸어 다른 스레드가 동기화 메소드를 실행하지 못하도록 합니다.
- 스레드 상태 : 스레드를 생성하고 시작하면 스레드는 다양한 상태를 가지게 됩니다. 스레드의 상태는 자동으로 변경될 수도 있고, 코드에 의해서 변경될 수도 있습니다.
- 일시 정지 : 실행 중인 스레드를 일정 시간 멈추게 하고 싶다면 Thread 클래스의 정적 메소드인 sleep()을 사용하면 됩니다. 다음과 같이 Thread.sleep()메소드를 호출한 스레드는 주어진 시간 동안 일시 정지 상태가 되고, 다시 실행 대기 상태로 돌아갑니다.
- 안전한 종료 : Thread는 스레드를 즉시 종료하기 위해서 stop() 메소드를 제공하고 있는데, 이 메소드는 deprecated되었습니다. 그 이유는 stop() 메소드 스레드를 갑자기 종료하게 되면 스레드가 사용중이던 자원들이 불안전한 상태로 남겨지기 때문입니다. 스레드를 안전하게 종료하기 위해서 stop 플래그를 이용하거나 interrupt()메소드를 이용하는 방법이 있습니다.
- 데몬 스레드 : 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드입니다. 주 스레드가 종료되면 데몬 스레드는 강제적으로 장동 종료되는데, 주 스레드의 보조 역할을 수행하므로 주 스레드가 종료되면 데몬 스레드의 존재 의미가 사라지기 때문입니다.
선택미션 539쪽 2번 문제 풀이
반응형
'혼공단 > 혼공자1기' 카테고리의 다른 글
[혼공 학습단 1기] 6주차 미션 입출력 스트림 요약 정리 포스팅 (0) | 2021.03.18 |
---|---|
[혼공 학습단 1기] 5주차 미션 직접 정리한 키워드 정리 공유 (0) | 2021.03.18 |
[혼공 학습단 1기] 3주차 미션 혼공 용어 노트에 용어 추가 등의 노트 활용 인증샷 (0) | 2021.03.18 |
[혼공 학습단 1기] 2주차 미션 330쪽 문제 5번 실행결과 인증샷 (0) | 2021.03.18 |
[혼공 학습단 1기] 1주차 미션 JDK 설치 화면 인증샷 (0) | 2021.03.18 |