日期:2014-05-20  浏览次数:20645 次

求一个Java线程问题,大哥们指导一下
Java线程:
有一系列的线程,都用synchronized对同一对象加锁。
也就是,只有得到此对象的进程才能执行,执行完了,其他线程竞争此对象执行。
由于线程需要用户输入,会阻塞,要在阻塞时,交出锁,使得其它线程能不用在此线程阻塞时等待,而是获得锁继续执行。有什么办法?

------解决方案--------------------
要在阻塞时,交出锁,使得其它线程能不用在此线程阻塞时等待

那就让拿到锁的线程,设置一个等待标志,然后启动一个读取键盘的线程,然后自己wait();
键盘线程读到东西后,设置标志,然后通知 notifyAll();