...
Failure to start threads correctly can cause unexpected behavior.
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
THI00-J | Low | Probable | Medium | P4 | L3 |
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.2 | FB.MT_CORRECTNESS.RU_INVOKE_RUN | Invokes run on a thread (did you mean to start it instead?) |
Coverity | 7.5 | DC.THREADING.thread_run | Implemented |
Parasoft Jtest |
|
|
| TRS.IRUN | Implemented | ||||||
SonarQube Java Plugin |
| S1217 |
- Thread.run() should not be called directly |
Related Guidelines
Android Implementation Details
Android provides a couple of solutions for threading. The Android Developers Blog's article "Painless Threading" discusses those solutions.
Bibliography
...
...