All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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