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

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

Include Page
CodeSonar_V
CodeSonar_V

JAVA.CONCURRENCY.LOCK.SCTBSynchronous Call to Thread Body (Java)
Coverity7.5DC.THREADING.thread_runImplemented
Klocwork

Include Page
Klocwork_V
Klocwork_V

JD.THREAD.RUN
Parasoft Jtest
Include Page
Parasoft_V
Parasoft_V
CERT.THI00.IRUNDo 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_V
SonarQube_V
S1217Thread.run() should not be called directly

Related Guidelines

MITRE CWE

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

...