zoukankan      html  css  js  c++  java
  • Java 中你怎样唤醒一个阻塞的线程?

     Java 发展史上曾经使用 suspend()、resume()方法对于线程进行阻塞唤醒 

    随之出现很多问题比较典型的还是死锁问题

    解决方案可以使用以对象为目标的阻塞即利用 Object 类的 wait() notify() 

    法实现线程阻塞

    首先,wait、notify 方法是针对对象的调用任意对象的 wait()方法都将导致线程 

    阻塞阻塞的同时也将释放该对象的锁相应地调用任意对象的 notify()方法则 

    将随机解除该对象阻塞的线程但它需要重新获取改对象的锁直到获取成功才 

    能往下执行其次,wait、notify 方法必须在 synchronized 块或方法中被调用

    并且要保证同步块或方法的锁对象与调用 wait、notify 方法的对象是同一个 

    此一来在调用 wait 之前当前线程就已经成功获取某对象的锁执行 wait 阻塞后当 

    前线程就将之前获取的对象锁释放

  • 相关阅读:
    Django之Orm的各种操作
    python面试题---收藏的笔记
    jQuery中$.each()方法的使用
    Django 之 路由URL,视图,模板
    高级FTP服务器开发
    选课系统
    ATM
    开发一个简单的python计算器
    学习PYTHON之路, DAY 8
    学习PYTHON之路, DAY 7
  • 原文地址:https://www.cnblogs.com/programb/p/12771069.html
Copyright © 2011-2022 走看看