The purpose of the Thread.run() method is to execute code in a separate, dedicated thread. Calling this method directly doesn’t make sense because it causes its code to be executed in the current thread.

To get the expected behavior, call the Thread.start() method instead.

Noncompliant Code Example

Thread myThread = new Thread(runnable);
myThread.run(); // Noncompliant

Compliant Solution

Thread myThread = new Thread(runnable);
myThread.start(); // Compliant

See