Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.2FB.MT_CORRECTNESS.RU_INVOKE_RUNInvokes run on a thread (did you mean to start it instead?

Include Page
CodeSonar_V
CodeSonar_V

JAVA.CONCURRENCY.LOCK.SCTBSynchronous Call to Thread Body (Java)
Coverity7.5DC.THREADING.thread_runImplemented
Parasoft Jtest
Include Page
java:
Parasoft_V
java:
Parasoft_V
TRS
CERT.THI00.IRUN
ImplementedSonarQube Java Plugin
Do not call the 'run()' method directly on classes extending 'java.lang.Thread' or implementing 'java.lang.Runnable'
PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V6064
SonarQube
Include Page
SonarQube
Java Plugin
_V
SonarQube
Java Plugin
_V
S1217
 
Thread.run() should not be called directly

Related Guidelines

MITRE CWE

CWE-572, Call to Thread run() instead of start()

Android Implementation Details

Android provides a couple of solutions for threading. The Android Developers Blog's article "Painless Threading" discusses those solutions.

Bibliography

...


...