The program calls a thread's run() method instead of calling
start(), which causes the code to run in the thread of the caller instead of the
callee.
Extended 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.
Time of Introduction
Implementation
Applicable Platforms
Languages
Java
Demonstrative Examples
Example 1
The following excerpt from a Java program mistakenly calls run()
instead of start().
(Bad Code)
Java
Thread thr = new Thread() {
public void run() {
...
}
};
thr.run();
Potential Mitigations
Phase
Description
Use the start() method instead of the run() method.