'Don't wait for CompletableFuture
Let's say I have some logic that I want to execute in a separate thread, and then continue with the remaining logic in my method.
If I don't care about the result of the the logic in the separate thread (could complete exceptionally, could complete with a result), can I simply execute the logic via CompletableFuture.runAsync? Just to reiterate, I do not need any information about the state or completion of the logic executed in the separate thread.
For example,
public void doSomething() {
// Don't care about the result of doSomethingElse - only care that execution starts and will complete with some outcome
CompletableFuture.runAsync(() -> doSomethingElse());
// do more things synchronously
return;
}
Solution 1:[1]
You can, but beware - if your program finishes running before this CompletableFuture completes, then the CompletableFuture might just get force shut down. This is important because a program that just stops executing halfway through can cause some elusive and difficult to debug errors. So it's actually 3 possible end states instead of 2.
- Complete successfully
- Complete exceptionally
- Stopped before completion with no error or notification unless you explicitly designed around this.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | davidalayachew |
