读书人

object.wait()跟object.notify()和obj

发布时间: 2012-11-08 08:48:12 作者: rapoo

object.wait()和object.notify()和object.notifyall()
object.wait()方法:让拥有object对象的锁的线程进入等待状态,并释放对象锁。

object.wait()和object.notify()和object.notifyall()必须写在synchronized方法内部或者synchronized块内部,因为:

这几个方法要求当前正在运行object.wait()方法的线程拥有object的对象锁。。。

即使你确实知道当前上下文线程确实拥有了对象锁,也不能将object.wait()这样的语句写在当前上下文中。如:


正确的应该这样:
package com.wangf.test;class AAA {public synchronized void aaa() throws InterruptedException {System.out.println(Thread.currentThread().getId());this.wait();}}public class MyWait {public static void main(String[] args) throws InterruptedException {AAA aaa = new AAA();System.out.println(Thread.currentThread().getId());aaa.aaa();}}

读书人网 >网络基础

热点推荐