BAEL-2408 Java Project Loom
This commit is contained in:
parent
c8fb78143e
commit
2e2f3bc4a9
|
@ -0,0 +1,22 @@
|
|||
package com.baeldung.loom;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class AsyncThreads {
|
||||
|
||||
public static void main(String[] args) throws ExecutionException, InterruptedException {
|
||||
|
||||
CompletableFuture<Void> cf = CompletableFuture.runAsync(() -> {
|
||||
|
||||
System.out.println("Hello " + Thread.currentThread().getName());
|
||||
});
|
||||
|
||||
cf.thenRun(() -> {
|
||||
|
||||
System.out.println("World " + Thread.currentThread().getName());
|
||||
});
|
||||
|
||||
cf.get();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.baeldung.loom;
|
||||
|
||||
public class BlockingThreads {
|
||||
|
||||
private static final Object LOCK = new Object();
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
|
||||
Thread thread1 = new Thread(() -> {
|
||||
synchronized (LOCK) {
|
||||
System.out.println("Hello " + Thread.currentThread().getName());
|
||||
LOCK.notify();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Thread thread2 = new Thread(() -> {
|
||||
synchronized (LOCK) {
|
||||
try {
|
||||
System.out.println("Will wait for thread1 now...");
|
||||
LOCK.wait();
|
||||
System.out.println("World " + Thread.currentThread().getName());
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
thread2.start();
|
||||
thread1.start();
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue