среда, 7 декабря 2011 г.

Финализация потока-демона

Т.к. поток-демон завершает свою работу внезапно, в момент, когда закончил свою работу последний поток не-демон, возникает проблема с нормальным завершением работы. В следующем примере текст в блоке finally не будет выведен на консоль.

public class DeamonTest implements Runnable {   
    public void run() {
        try {
            System.out.println("Trying");
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            System.out.println("InterruptedException");
        } finally {
            System.out.println("Never prints");
        }
    }
    
    public static void main(String[] args) {
        Thread t = new Thread(new DeamonTest());
        t.setDaemon(true);
        t.start();
    }
}
/**
 * Output: Trying
 */

Комментариев нет:

Отправить комментарий