
org.sonar.l10n.java.rules.squid.S2276.html Maven / Gradle / Ivy
If Thread.sleep(...)
is called when the current thread holds a lock, it could lead to performance, and scalability issues, or even worse to deadlocks because the execution of the thread holding the lock is frozen. It's better to call {{wait(...)}} on the monitor object to temporarily release the lock and allow other threads to run.
Noncompliant Code Sample
public void doSomething(){
synchronized(monitor) {
while(notReady()){
Thread.sleep(200);
}
process();
}
...
}
Compliant Solution
public void doSomething(){
synchronized(monitor) {
while(notReady()){
monitor.wait(200);
}
process();
}
...
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy