Java 如何在Main函数中,执行完异步任务后才退出主线程
如题,有时候我们需要在Main函数中写测试代码,并且需要在异步线程中执行任务,任务执行完之后才退出主线程,如何做到的呢,请看如下代码:
public class TestMain {/** * @param args */public static void main(String[] args) {System.out.println("-------work------start---------");LockHandler mHandler=new LockHandler();Thread mThread=new Thread(new WorkRunnable(mHandler));mThread.setDaemon(true);mThread.start();mHandler.waitForDebug();System.out.println("-------work------end---------");}public static class WorkRunnable implements Runnable{public LockHandler mHandler;public WorkRunnable(LockHandler mHandler) {this.mHandler = mHandler;}public void run() {//TODO try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("-------我在异步线程中睡了五秒---------");mHandler.notifytForDebug();}}public static class LockHandler{public synchronized void waitForDebug(){try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}}public synchronized void notifytForDebug(){this.notifyAll();}}}
执行结果:
-------work------start---------
-------我在异步线程中睡了五秒---------
-------work------end---------
只需要重写WorkRunnable类的run()方法,so easy !