Thread란??
- 프로세스내에서의 제어 흐름(하나의 실행 단위)
- CPU이용량 단위의 기본, 각 스레드마다 PCB를 가지고 있다.
- 같은 프로세스에 속한 각 쓰레드들은 공유 가능 -> 프로세스를 여러개 띄운것과 차이
멀티쓰레드
동시에 여러가지 작업을 동시에 수행할 수 있게하는것
특
|
※ 동기화에 주의
※ 교착상태가 발생하지 않도록 주의
※ 각 쓰레드가 효율적으로 고르게 실행되게 해야한다.
쓰레드 구현 및 실행
1.Thread클래스 상속 // 클래스의 run을 오버라이딩
2. Runnable 인터페이스 구현 // 인터페이스의 run을 구현
1)호출
static Thread currentThread() 현재 실행중인 쓰레드를 참조 반환
String getName() 쓰레드 이름을 반환
2)실행
참조변수.start(); 호출해서 실행
데몬쓰레드
일반쓰레드의 작업을 돕는 보조적인역할
일반쓰레드가 종료되면 자동 종료
●boolean isDaemon() 쓰레드가 데몬쓰레드인지 확인 (데몬쓰레드=TRUE) ●void setDaemon(boolean on) 쓰레드를 데몬 쓰레드로 또는 사용자 쓰레드로 변경 매개 변수 on의 값을 true로 지정하면 데몬쓰레드가 된다. |
쓰레드 실행제어
sleep (long millis) -일정시간동안 쓰레드를 멈추게 한다.
일시정지 상태가 쓰레드가 interrupt() 가 호출되면 InterruptException 이발생하면 실행대기가 되므로
sleep을 호출할 때는 try -catch 문으로 예외처리를 해주어야 한다'
Interrupt() , Interrupted ()- 쓰레드의 작업을 취소
쓰레드의 작업이 끝나기전에 취소시켜야 할일이 생길때
|
※※참고
사용은 가능하지만 deprecated 되어버린 메서드 (사용하지 않기를 권장!!)
suspend() 잠시 멈춤
resume()재실행
stop()
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 문자열중 가운데 글자 출력 (0) | 2018.01.02 |
---|---|
[Java]Generics 제네릭스 (0) | 2017.12.19 |
[Java]Collections Framework (0) | 2017.12.18 |
[Java]클래스 메서드 & 인스턴스 메서드 (0) | 2017.12.15 |
[Java]객체지향 -다향성 및 instanceOf 연산자 (0) | 2017.12.14 |