java : wait,notify 语义清晰化

obj1.wait() 清晰写法

  • 清晰写法(语义伪代码): obj1.waitingThreadList.insert(currentThread);

  • 清晰写法(语义伪代码,中文): obj1.等待中线程列表.插入(当前线程);

  • 通俗解释: 当前线程 进入 obj1的 等待中线程列表

  • 大概意思: wait == “插入”

obj1.notify() 清晰写法

  • 清晰写法(语义伪代码): obj1.waitingThreadList.removeSomeOneThread();

  • 清晰写法(语义伪代码,中文): obj1.等待中线程列表.删除某一个线程();

  • 通俗解释: obj1的 等待中线程列表 中 删除某一个线程

  • 大概意思: notify == “删除”

obj1.notifyAll() 清晰写法

  • 清晰写法(语义伪代码): obj1.waitingThreadList.removeAllThread();

  • 清晰写法(语义伪代码,中文): obj1.等待中线程列表.删除全部线程();

  • 通俗解释: obj1的 等待中线程列表 中 删除全部线程

  • 大概意思: notifyAll == “删除全部”

完整代码


public class Example {
final static Object obj1 = new Object();

public static class Thread1 extends Thread{
  @Override
  public void run(){
    synchronized (obj1){
      try {
        obj1.wait();//清晰写法: obj1.waitingThreadList.insert(currentThread);
           //清晰写法(中文):    obj1.等待中线程列表.插入(当前线程);
		   //大概意思: wait == "插入"
      }catch (InterruptedException e){
      }//end_of catch
    }//end_of synchronized
  }//end_of run
}//end_of class
 
public static class Thread2 extends Thread{
  @Override
  public void run(){
  synchronized (obj1){
    obj1.notify();     //清晰写法: obj1.waitingThreadList.removeSomeOneThread();
            //清晰写法(中文):  obj1.等待中线程列表.删除某一个线程();
		   //大概意思: notify == "删除"
      obj1.notifyAll();//清晰写法: obj1.waitingThreadList.removeAllThread();
            //清晰写法(中文):  obj1.等待中线程列表.删除全部线程();
		   //大概意思: notifyAll == "删除全部"

  }//end_of synchronized
  }//end_of run
}//end_of class

public static void main(String[] args) {
	Thread 线程1 = new Thread1();
	Thread 线程2 = new Thread2();

	线程1.start();
	线程2.start();
}//end_of main
}//end_of class




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值