Java多线程之线程返回值
对于Java多线程的理解,我以前仅仅局限于实现Runnable接口或者继承Thread类,然后重写run()方法,最后start()调用就算完事,但是一旦涉及死锁以及对共享资源的访问和随时监控线程的状态和执行顺序等等就不行了,所以现在开始看Thinking in java的并发这一节,从头学多线程,
下面发一个关于线程中的任务返回,和创建线程池的代码
Executor为执行器,将为你管理Thread对象,从而简化了并发编
程。Executor在客户端和任务执行之间提供了一个间接层,与客户
端直接执行任务不同,这个中介对象将执行任务。Executor允许你
管理异步任务的执行,而无需显示的管理线程的生命周期。
Executor是Java SE6/7中启动任务的优选方法。
下面的代码就能够随时监控各个线程的状态了
Submit方法会产生Future对象,他用Callable返回结果的特定类型
进行了参数化。你可以用isDemo()方法来查询Future()是够已经完
成。当任务完成的时候,他具有一个结果,你可以调用get()方法
获得这个结果。
Java 6/7最佳的休眠方法为TimeUnit.MILLISECONDS.sleep(100);
最好不要用 Thread.sleep(100);