Create Thread by extending Thread class in Java
Use anonymous class to extend Thread class in Java.
Implement Runnable Interface
Using a class to implement Runnable interface.
Using Lambda to implement Runnable Interface.
Using anonymous class to implement Runnable interface.
Wait, notify and notifyall. Why notify is unpredictable and other points are cleared in this article.
Use Cyclibarrier In Java Programming Language
Implement your own threadpool using modern java
Why thread priority should not be used as base while designing multi-threaded applications