人工智能学习

wait与sleep区别

本文主要是介绍wait与sleep区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

wait与sleep区别在于:

  1. wait会释放所有锁而sleep不会释放锁资源.
  2. wait只能在同步方法和同步块中使用,而sleep任何地方都可以.
  3. wait无需捕捉异常,而sleep需要.

两者相同点:都会让渡CPU执行时间,等待再次调度!

class Allocator {
  private List<Object> als;
  // 一次性申请所有资源
  synchronized void apply(
    Object from, Object to){
    // 经典写法
    while(als.contains(from) ||
         als.contains(to)){
      try{
        wait();
      }catch(Exception e){
      }   
    } 
    als.add(from);
    als.add(to);  
  }
  // 归还资源
  synchronized void free(
    Object from, Object to){
    als.remove(from);
    als.remove(to);
    notifyAll();
  }
}
这篇关于wait与sleep区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!