diff --git a/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/CustomThread.java b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/CustomThread.java new file mode 100644 index 0000000000..79e938c50f --- /dev/null +++ b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/CustomThread.java @@ -0,0 +1,14 @@ +package com.baeldung.concurrent.threads.create; + +public class CustomThread extends Thread{ + + @Override + public void run(){ + System.out.println(Thread.currentThread().getName()+" started"); + } + + public static void main(String[] args){ + CustomThread t1 = new CustomThread(); + t1.start(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/TestClass.java b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/TestClass.java new file mode 100644 index 0000000000..d292e4d24c --- /dev/null +++ b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/TestClass.java @@ -0,0 +1,15 @@ +package com.baeldung.concurrent.threads.create; + +public class TestClass implements Runnable{ + + @Override + public void run(){ + System.out.println(Thread.currentThread().getName()+" started"); + } + + public static void main(String[] args){ + TestClass testClassRef = new TestClass(); + Thread t1 = new Thread(testClassRef); + t1.start(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/CachedThreadPool.java b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/CachedThreadPool.java new file mode 100644 index 0000000000..af60f4e9e8 --- /dev/null +++ b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/CachedThreadPool.java @@ -0,0 +1,16 @@ +package com.baeldung.concurrent.threads.create.threadpools; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class CachedThreadPool { + public static void main(String[] args){ + ExecutorService executorService = Executors.newCachedThreadPool(); + executorService.submit(()->{ + System.out.println("submitted a runnable task to cached thread pool"); + System.out.println(Thread.currentThread().getName()+" from pool is executing the task"); + }); + + executorService.shutdown(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/FixedThreadPool.java b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/FixedThreadPool.java new file mode 100644 index 0000000000..ad3acb45d5 --- /dev/null +++ b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/FixedThreadPool.java @@ -0,0 +1,17 @@ +package com.baeldung.concurrent.threads.create.threadpools; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class FixedThreadPool{ + + public static void main(String[] args){ + ExecutorService executorService = Executors.newFixedThreadPool(5); + executorService.submit(()->{ + System.out.println("submitted a runnable task to fixed thread pool"); + System.out.println(Thread.currentThread().getName()+" from pool is executing the task"); + }); + + executorService.shutdown(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/ScheduledThreadPool.java b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/ScheduledThreadPool.java new file mode 100644 index 0000000000..084835041f --- /dev/null +++ b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/ScheduledThreadPool.java @@ -0,0 +1,14 @@ +package com.baeldung.concurrent.threads.create.threadpools; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public class ScheduledThreadPool{ + public static void main(String[] args){ + ScheduledExecutorService executorService = Executors.newScheduledThreadPool(3); + executorService.schedule(()->System.out.println("executing scheduled runnable task"), 5, TimeUnit.SECONDS); + + executorService.shutdown(); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/SingleThreadPool.java b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/SingleThreadPool.java new file mode 100644 index 0000000000..5a91eadb39 --- /dev/null +++ b/core-java-modules/core-java-concurrency-basic-2/src/main/java/com/baeldung/concurrent/threads/create/threadpools/SingleThreadPool.java @@ -0,0 +1,20 @@ +package com.baeldung.concurrent.threads.create.threadpools; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +public class SingleThreadPool{ + public static void main(String[] args){ + ExecutorService executorService = Executors.newSingleThreadExecutor(); + try{ + Future result = executorService.submit(()-> "callable task executed"); + System.out.println(result.get()); + }catch(InterruptedException | ExecutionException e){ + e.printStackTrace(); + } + + executorService.shutdown(); + } +} \ No newline at end of file