I must be missing something:
public class Test {
public static void main(String[] args) {
(new Thread(new Action())).run();
System.out.pr
Because you are not invoking start(), you are calling directly the implementation method of the thread run(), thus no thread is started, code is just executed.
run() is the method called by the thread internal structure to execute the task, since it's just a normal method which doesn't have anything attached.