diff --git a/core-java-modules/core-java-concurrency-advanced-2/README.md b/core-java-modules/core-java-concurrency-advanced-2/README.md index ca108f956e..7dc0660f58 100644 --- a/core-java-modules/core-java-concurrency-advanced-2/README.md +++ b/core-java-modules/core-java-concurrency-advanced-2/README.md @@ -4,3 +4,4 @@ ### Relevant Articles: - [Semaphores in Java](https://www.baeldung.com/java-semaphore) +- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) diff --git a/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java new file mode 100644 index 0000000000..370ce99c09 --- /dev/null +++ b/core-java-modules/core-java-concurrency-advanced-2/src/main/java/com/baeldung/concurrent/daemon/NewThread.java @@ -0,0 +1,23 @@ +package com.baeldung.concurrent.daemon; + +public class NewThread extends Thread { + public void run() { + long startTime = System.currentTimeMillis(); + while (true) { + for (int i = 0; i < 10; i++) { + System.out.println(this.getName() + ": New Thread is running..." + i); + try { + //Wait for one sec so it doesn't print too fast + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + // prevent the Thread to run forever. It will finish it's execution after 2 seconds + if (System.currentTimeMillis() - startTime > 2000) { + Thread.currentThread().interrupt(); + break; + } + } + } +} diff --git a/core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java b/core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java similarity index 100% rename from core-java-modules/core-java-concurrency-advanced/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java rename to core-java-modules/core-java-concurrency-advanced-2/src/test/java/com/baeldung/concurrent/daemon/DaemonThreadUnitTest.java diff --git a/core-java-modules/core-java-concurrency-advanced/README.md b/core-java-modules/core-java-concurrency-advanced/README.md index a2e14376e3..f19b4c8375 100644 --- a/core-java-modules/core-java-concurrency-advanced/README.md +++ b/core-java-modules/core-java-concurrency-advanced/README.md @@ -14,7 +14,6 @@ - [CyclicBarrier in Java](https://www.baeldung.com/java-cyclic-barrier) - [Guide to the Volatile Keyword in Java](https://www.baeldung.com/java-volatile) -- [Daemon Threads in Java](https://www.baeldung.com/java-daemon-thread) - [Priority-based Job Scheduling in Java](https://www.baeldung.com/java-priority-job-schedule) - [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield) - [Print Even and Odd Numbers Using 2 Threads](https://www.baeldung.com/java-even-odd-numbers-with-2-threads)