Java
-
[Java] 쓰레드(Thread) - 쓰레드의 실행제어1(스케줄링)Java 2022. 6. 14. 18:07
쓰레드 프로그래밍에서는 동기화와 스케줄링에 대해 이해해야한다. 쓰레드 스케줄링에 대해서 알기 위해서는 쓰레드 상태 관련 메서드를 알 필요가 있다. static void sleep(long millis) static void sleep(long millis, int nanos) // 지정된 시간 (천분의 일초)동안 쓰레드를 일시정지 시킨다. // 지정한 시간이 지나고 다면 자동적으로 다시 실행대기 상태가 된다. void join() void join(long millis) void join(long millis, int nanos) // 지정된 시간 동안 쓰레드가 실행되도록 한다. // 지정된 시간이 지나거나 작업이 종료되면 // join()을 호출한 쓰레드로 다시 돌아와 실행을 계속한다. void int..
-
[Java] 쓰레드(Thread) - 데몬 쓰레드 (daemon thread)Java 2022. 6. 14. 17:25
데몬 쓰레드란? 데몬 쓰레드가 아닌 쓰레드의 작업을 돕는, 보조적인 역할을 하는 쓰레드를 의미한다. 따라서 일반쓰레드가 모두 종료되면 데몬쓰레드는 강제적으로 자동 종료된다. 보조적인 역할을 한다는 것을 제외하고는 데몬 쓰레드와 일반쓰레드는 다르지 않은데 데몬 쓰레드의 예로는 가비지 컬렉터, 자동저장, 화면 자동 갱신 등이 있다. 데몬 쓰레드는 실행된 후 대기하고 있다가 특정 조건이 만족되면 작업을 수행 후 대기한다. 데몬 쓰레드와 일반쓰레드의 작성방법 및 실행방법은 같지만 쓰레드를 생성한 다음 실행하기 전에 setDaemon(true)를 호출하기만 하면 된다. 또한 데몬 쓰레드가 생성한 쓰레드는 자동으로 데몬 쓰레드가 된다. // 쓰레드가 데몬인지 확인 : 맞으면 true 반환 boolean isDaem..
-
[Java] 쓰레드(Thread) - 쓰레드의 구현과 실행Java 2022. 6. 14. 17:09
[쓰레드의 구현] 쓰레드를 구현하는 방법은 2가지로 나눌 수 있다. 1.Thread 클래스를 상속받는 방법 2. Runnable 인터페이스를 구현하는 방법 상속은 단일 상속만 가능하기 때문에 인터페이스를 구현하는 것이 일반적이다. 또한 재사용성이 높고 코드의 일관성을 유지할 수 있기 때문에 1번에 비해 2번이 보다 객체 지향적인 방법이라 할 수 있다. Runnable 인터페이스는 run()만 정의 되어 있는 간단한 인터페이스로 이를 구현하기 위해서는 해당 메서드의 구현부를 작성해주기만 하면 된다. // 1. Runnable 인터페이스를 구현한 클래스 인스턴스 생성 Runnable r = new ThreadImpl(); // 2. 이 인스턴스를 Thread클래스의 생성자 매개변수로 제공 Thread t =..