Sonar rule for multithread
The purpose of the Thread.run()
and Runnable.run()
methods is to execute code in a separate, dedicated thread. Calling those methods directly doesn't make sense because it causes their 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