 
                            ...
Failure to start threads correctly can cause unexpected behavior.
| Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level | 
|---|---|---|---|---|---|---|
| THI00-J | Low | Probable | Yes | MediumYes | P4P6 | L3L2 | 
Automated Detection
Automated detection of direct invocations of Thread.run() methods is straightforward. Sound automated determination of which specific invocations are permitted may be infeasible. Heuristic approaches may be useful.
| Tool | Version | Checker | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| CodeSonar | 4
 | JAVA.2 | FB.MT_CORRECTNESS.RU_INVOKE_RUNInvokes run on a thread (did you mean to start it instead? | CONCURRENCY.LOCK.SCTB | Synchronous Call to Thread Body (Java) | ||||||
| Coverity | 7.5 | DC.THREADING.thread_run | Implemented | ||||||||
| Klocwork | 
 | JD.THREAD.RUN | |||||||||
| Parasoft Jtest | 
 | CERT.THI00.IRUN | Do not call the 'run()' method directly on classes extending 'java.lang.Thread' or implementing 'java.lang.Runnable' | ||||||||
| PVS-Studio | 
 | V6064 | |||||||||
| SonarQube | 
 | S1217 | Thread.run() should not be called directly | 
Related Guidelines
...