Java中线程同步的简单用法
864 次查看应用场景:应用程序需要新建若干线程进行事务处理,这些线程处理完毕后,应用程序会进行一些后续的操作。
解决办法:使用Object.wait(),Object.notify()方法。Object.wait()方法会阻断当前线程的执行,直到其他线程调用Object.notify()。
于是可以很快的写出一个示例程序:
public static void main(String[] args) { final Object syncObj = new Object(); Thread thread = new Thread() { public void run() { try { Thread.sleep(3000); synchronized(syncObj) { syncObj.notify(); } } catch (InterruptedException e) { e.printStackTrace(); } } }; thread.start(); synchronized(syncObj) { try { syncObj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("Exit"); }
调用wait和notify方法前,一定要用synchronized(syncObj),否则会抛出IllegalMonitorStateException。
有空再写写Concurrence Util里的工具类,简化上面的操作。


最新评论