添加了一个新的executors工厂类来生成线程池,如以下方法
-publicstaticexecutorsservicenewfixedthreadpool(intnthreads)
-publicstaticexecutorsservicenewsinglethreadexecutor()这些方法的返回值是executorserviceobject,它表示线程池,可以执行由可运行对象或可调用对象表示的线程。它提供以下方法:
-未来<?>submit(runnabletask)
-<t>future<t>submit(callable<t>解决线程返回值问题最理想的方法是逐个线程通知调度线程。调度线程可以是主线程或特殊的调度线程。每当任务线程完成自己的工作时,它都会通知调度线程获取结果。只有这样,才能充分发挥多线程的优势,而不是坐以待毙。
如果您认为主线程是一个调度线程,并且您的主线程有一个消息循环,那么使用消息是一个很好的通知方式。
任务线程完成工作后,会向主线程发送一条消息。在消息中,可以将任务线程本身(线程类)发送到主线程,然后从主线程中提取线程类,得到任务线程的处理结果。