java daemon 예제

데몬 스레드는 사용자 스레드를 제공하기 위한 것이며 사용자 스레드가 실행되는 동안에만 필요하므로 모든 사용자 스레드가 실행을 완료하면 JVM이 종료되는 것을 방지하지 못합니다. thread.setDaemon(true)은 자바에서 데몬 스레드를 만드는 데 사용됩니다. 이 메서드는 스레드가 시작 되기 전에 호출 해야 그렇지 않으면 그것은 throw IllegalThreadStateException. “dt” 스레드를 데몬 스레드로 실행하도록 설정하지 않으면 주 스레드가 실행이 완료된 후에도 프로그램이 종료되지 않습니다. DaemonThread는 스레드 절전 모드가 있는 잠시 트루 루프를 가지고 있으므로 자체적으로 종료되지 않습니다. 데몬 스레드 프로그램 위에서 실행하면 JVM은 main() 메서드를 사용하여 첫 번째 사용자 스레드를 만듭니다. 자바에서 데몬 스레드의 작은 예를 보자. 이 예제에서는 Java 데몬 스레드를 사용하는 방법을 보여 드리며 스레드는 프로그램의 실행 스레드입니다. Java 가상 머신을 사용하면 응용 프로그램에 동시에 실행되는 여러 스레드(사용자, 데몬)가 있습니다. GC, finalizer 등과 같은 자동으로 실행되는 많은 자바 데몬 스레드가 있습니다. 데몬 스레드는 가비지 콜렉션(gc) 등과 같은 작업을 수행하기 위해 백그라운드에서 실행되는 낮은 우선 순위 스레드(JVM의 컨텍스트)로, 모든 사용자 스레드(비데몬 스레드)가 실행중인 경우에도 JVM이 종료되는 것을 방지하지 않습니다. 실행을 완료합니다.

JVM은 모든 사용자 스레드 (비 데몬 스레드)가 실행을 완료할 때 자체적으로 종료되며 JVM은 데몬 스레드가 실행되는지 여부를 상관하지 않습니다 (사용자 스레드가 완료되면) 스레드를 종료하고 종료 합니다. 자체. 또한 프로그램이 종료되고 리소스가 제대로 닫히지 않을 때 리소스 누수가 발생할 수 있으므로 IO 작업에 대한 데몬 스레드를 피하는 것이 좋습니다. 데몬 스레드는 앞에서 설명한 대로 백그라운드에서 작동하므로 사용자(일반) 스레드가 작업을 수행하면 JVM이 갑자기 데몬 스레드를 종료합니다. 따라서 모든 비데몬이 종료되는 즉시 JVM은 예상대로 올 수 있는 절차없이 모든 데몬을 즉시 종료합니다. 안녕하세요, 미안이 바보 같은 질문을 나타날 수 있습니다,하지만, 설명 된 정의에 따라 같은 소리, 데몬 스레드는 백그라운드에서 실행을 계속하지 않습니다, 이는 무엇을해야하는지. JVM은 데몬 스레드를 종료한 다음 자체적으로 종료합니다. 데몬은 살아 있고 백그라운드에서 계속 달리기 때문에 조금 혼란 스러울 것 같아요.

이 동작이 필요합니다. 누군가가 나에게 이것을 설명하는 것을 도울 수 있습니까? 그것은 하나의 사용자 스레드가 살아 있을 것입니다 만들 수 있습니다 것 같다 그리고 데몬은 본질적으로 종료됩니다. 나는 일을 모니터링하고 백그라운드에서 지속적으로 실행하는 데몬을 만들 필요가, 물론 3 분 동안 잠을 가서 다음 일어나, 그 일을하고, 다시 잠을 이동합니다. 반복해서. 내가 놓친 것은 무엇입니까? 정말 감사합니다! JVM이 실행 중인 데몬 스레드(사용자 스레드 완료 시)를 발견하면 스레드가 종료되고 종료 자체가 종료됩니다. 일반 스레드가 실행되지 않고 나머지 스레드가 데몬 스레드인 경우 인터프리터가 종료됩니다. 새 스레드를 만들 면 부모의 데몬 상태를 상속 합니다. 일반 스레드와 데몬 스레드는 종료할 때 발생하는 내용이 다릅니다.

JVM이 남아 있는 데몬 스레드가 중단되면 마지막으로 블록이 실행되지 않고 스택이 해제되지 않습니다. 이러한 이유로 인해 데몬 스레드는 아껴서 사용해야 하며 모든 종류의 I/O를 수행할 수 있는 작업에 사용하는 것은 위험합니다. 이 짧은 기사에서는 Java의 데몬 스레드를 살펴보고 사용할 수있는 것을 살펴 보겠습니다. 또한 데몬 스레드와 사용자 스레드의 차이점에 대해서도 설명합니다. 스레드를 데몬 스레드로 설정하려면 Thread.setDaemon()을 호출하기만 하면 됩니다. 이 예제에서는 Thread 클래스를 확장하는 NewThread 클래스를 사용합니다.

Comments are closed.