java - notify() not working in Runnable -
why can't notification reader in code:
public class threadmain { public thread reader; private class serialreader implements runnable { public void run() { try { thread.sleep(3000); synchronized(this) { system.out.println("notifying"); notify(); } thread.sleep(3000); } catch (exception e){} } } threadmain() { reader = (new thread (new serialreader()) ); } public static void main(string [] args) { threadmain d= new threadmain(); d.reader.start(); synchronized(d) { try { d.wait(); system.out.println("got notify"); } catch (exception e) { system.out.println(e); } } } } i have line notifying in output
the notify , wait not use same monitor there no chance "talk" each other.
one simple fix use reader monitor in main:
synchronized (d.reader) { try { d.reader.wait(); system.out.println("got notify"); } catch (exception e) { system.out.println(e); } }
Comments
Post a Comment