Code Correctness: Call to Thread.run()

 

Abstract

The program calls a thread's run() method instead of calling start().

Description

In most cases a direct call to a Thread object's run() method is a bug. The programmer intended to begin a new thread of control, but accidentally called run() instead of start(), so the run() method will execute in the caller's thread of control.

Examples

The following excerpt from a Java program mistakenly calls run() instead of start().

   Thread thr = new Thread() {
     public void run() {
       ...
     } 
   };
   thr.run();