wait释放线程锁资源

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-16 18:51   215   0
package com.freeflying.thread.communication;
/**
 * wait方法是否锁
 * @ClassName: WaitReleaseLock  
 * @Description:
 * @author freeflying
 * @date 2018年7月16日
 */
public class WaitReleaseLock {
 public static void main(String[] args) {
  Object lock=new Object();
  WaitReleaseLockA waitReleaseLockA=new WaitReleaseLockA(lock);
  waitReleaseLockA.start();
  WaitReleaseLockB waitReleaseLockB=new WaitReleaseLockB(lock);
  waitReleaseLockB.start();
 }
}
class WaitReleaseLockEx{
 public void testMethod(Object lock) {
  try {
   synchronized (lock) {
    System.out.println("begin wait!!");
    lock.wait();
    System.out.println("end wait!!");
   }
  } catch (Exception e) {
  }
 }
}
class WaitReleaseLockA extends Thread{
 private Object lock;
 public WaitReleaseLockA(Object lock) {
  this.lock=lock;
 }
 @Override
 public void run() {
  WaitReleaseLockEx waitReleaseLockEx=new WaitReleaseLockEx();
  waitReleaseLockEx.testMethod(lock);
 }
}
class WaitReleaseLockB extends Thread{
 private Object lock;
 public WaitReleaseLockB(Object lock) {
  this.lock=lock;
 }
 @Override
 public void run() {
  WaitReleaseLockEx waitReleaseLockEx=new WaitReleaseLockEx();
  waitReleaseLockEx.testMethod(lock);
 }
}

结果:

begin wait!!
begin wait!!

结论:在wait方法执行后,线程会释放锁的

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP