java中wait方法是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中wait方法是啥意思相关的知识,希望对你有一定的参考价值。

wait方法用在 synchronized 方法或者 synchronized块中。
一般在判断语句中,如果某条件被触发,让当前线程wait并释放对象的锁。
此时可以让其他线程可以对用以对象调用synchronized方法。
直到调用 notify或者notifyAll后 wait的线程才有可能执行。
所以一般wait 和 notify是成对出现的。
有点复杂,去看看线程同步有关的东西吧。
参考技术A 线程间通信。
多个线程在处理同一个数据资源,但是处理的动作却不一致。
这里就用到一个机制 等待/唤醒 机制。

等待和唤醒:
wait():让线程处于等待状态。这时线程会释放锁。并存入到了线程池中。
notify():通常唤醒线程池中的第一个。
notifyAll():将线程池中的所有等待线程都唤醒。
wait:释放cpu执行资源,也释放锁。
参考技术B wait方法是使线程进入到休眠状态。直到对这个线程调用了notify方法或者notifyAll方法来唤醒这个线程。 参考技术C 用来进行线程控制,还有一个sleep方法和wait方法类似,但是sleep不会释放同步锁,wait会释放同步锁

java中override是啥意思

参考技术A //@Override:覆盖(重写)父类中的一个方法。
//下面有一个例子。
//在你的类A中定义一个签名为
//@Override
//public boolean equals(Object obj)的方法就能重写(覆盖)Object类的同名方法了,
//以后调用equals方法比较两个类A的对象的相等性时,就会调用你重写的方法了。
//看例子。
public class Demo

public static void main(String[] args)

A a1=new A(1,'a'),a2=new A(1,'b'),a3=new A(1,'a');
//调用类A的重写的equals方法比较3个对象的相等性
//false
System.out.println(""+a1.equals(a2));
//true
System.out.println(""+a1.equals(a3));
//false
System.out.println(""+a2.equals(a3));


class A

A(int n,char c)

this.n=n;
this.c=c;

//@Override可省略
@Override
public boolean equals(Object obj)

System.out.println("调用了重写的类A的equals方法。");
boolean r=false;
A a;
if(obj instanceof A)

a=(A)obj;
r=(this.n==a.n && this.c==a.c);

return r;

private int n;
private char c;

以上是关于java中wait方法是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

wait方法和sleep方法的区别

wait方法和sleep方法的区别

java中的sleep和wait的区别

java中的sleep和wait的区别

java中的sleep和wait的区别

TIME_WAIT是啥意思