From ef4ee45a18de65b0c81bbe8da16c0b063b2201a5 Mon Sep 17 00:00:00 2001 From: Ahmed Tawila Date: Thu, 26 Oct 2017 11:48:45 +0200 Subject: [PATCH] BAEL-1263 Daemon Threads in Java --- .../baeldung/concurrent/daemon/NewThread.java | 9 +++++ .../concurrent/daemon/DaemonThreadTest.java | 33 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 core-java-concurrency/src/main/java/com/baeldung/concurrent/daemon/NewThread.java create mode 100644 core-java-concurrency/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadTest.java diff --git a/core-java-concurrency/src/main/java/com/baeldung/concurrent/daemon/NewThread.java b/core-java-concurrency/src/main/java/com/baeldung/concurrent/daemon/NewThread.java new file mode 100644 index 0000000000..a9433a8333 --- /dev/null +++ b/core-java-concurrency/src/main/java/com/baeldung/concurrent/daemon/NewThread.java @@ -0,0 +1,9 @@ +package com.baeldung.concurrent.daemon; + +public class NewThread extends Thread { + + public void run() { + for (int i = 0; i < 10; i++) + System.out.println("New Thread is running..."); + } +} diff --git a/core-java-concurrency/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadTest.java b/core-java-concurrency/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadTest.java new file mode 100644 index 0000000000..96f79cd0dd --- /dev/null +++ b/core-java-concurrency/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadTest.java @@ -0,0 +1,33 @@ +package com.baeldung.concurrent.daemon; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class DaemonThreadTest { + + @Test + public void whenCallIsDaemon_thenCorrect() { + NewThread daemonThread = new NewThread(); + NewThread userThread = new NewThread(); + daemonThread.setDaemon(true); + daemonThread.start(); + userThread.start(); + + assertTrue(daemonThread.isDaemon()); + assertFalse(userThread.isDaemon()); + } + + @Test(expected = IllegalThreadStateException.class) + public void givenUserThread_whenSetDaemonWhileRunning_thenIllegalThreadStateException() { + NewThread daemonThread = new NewThread(); + daemonThread.start(); + daemonThread.setDaemon(true); + } + + @Test + public void givenUserThread_whenStartThread_thenFalse() { + NewThread daemonThread = new NewThread(); + } +}