wait,notify,sleep,join这几个方法很常用,这里涉及到多线程与同步问题,这里稍微解释一下.
【程序编程相关:学会使用Linux性能分析工具】1.wait与notify 【推荐阅读:如何在windows 上安装bugzil】
【扩展信息:Java下XML编程接口比较:DOM 】这两个方法都是object中的方法,放在一块是因为他们关系非常密切.wait就是等待这个对象的同步锁,不过调用这个方法必须先获得这个对象的同步锁,就这一点很多人就搞晕了. 这里先解释一下这两个方法,然后给出一个小例子说明.wait:等待对象的同步锁,需要获得该对象的同步锁才可以调用这个方法,否则后收到一个illegalmonitorstateexception,这个是运行时异常.调用这个方法后,就放弃了这个同步锁了.如果不带参数的wait方法就只有等别人唤醒了,如果带一个参数的
化就设置等待最长时间,过了这个时间即使没有人唤醒这个线程也不再等待了.notify:唤醒在等待该对象同步锁的线程(只唤醒一个,如果有多个在等待),但是notifyall可以唤醒所有等待的线程,注意唤醒的时在notify之前wait的线程,之后的没有效果.
这里举一个通俗的例子,两个人共有一个卫生间(每次只能一个人用),他们都要刷牙与方便,他们是这样约定的,轮流用,第一个人先刷牙,然后第二个人刷牙...
class syn { public static void main(string[] args) throws exception { twopeople.one.start(); twopeople.two.start(); } } class twopeople extends thread { private int i=0; ... 下一页