黑马程序员技术交流社区

标题: Executors 创建线程池方法 [打印本页]

作者: t_mac    时间: 2011-12-28 13:58
标题: Executors 创建线程池方法
Executors创建线程池的newSingleThreadExecutor(ThreadFactory threadFactory)方法与newFixedThreadPool(1, threadFactory)有什么不同?
作者: 王胜利    时间: 2011-12-28 14:10
public static ExecutorService newSingleThreadExecutor()
创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
(注意,如果因为在关闭前的执行期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执行后续的任务)。
可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。
newSingleThreadExecutor返回的ExcutorService在析构函数finalize()会调用shutdown(),即如果我们没有对它调用shutdown(),那么可以确保它在被回收时调用shutdown()来终止线程。


public static ExecutorService newFixedThreadPool(int nThreads,ThreadFactory threadFactory)
    创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,在需要时使用提供的 ThreadFactory 创建新线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被显式地关闭之前,池中的线程将一直存在。
    参数:
        nThreads - 池中的线程数
        threadFactory - 创建新线程时使用的工厂
    返回:
        新创建的线程池
    抛出:
        NullPointerException - 如果 threadFactory 为 null
        IllegalArgumentException - 如果 nThreads <= 0

作者: 王胜利    时间: 2011-12-28 14:12
public static ExecutorService newSingleThreadExecutor()
创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
(注意,如果因为在关闭前的执行期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执行后续的任务)。
可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。
newSingleThreadExecutor返回的ExcutorService在析构函数finalize()会调用shutdown(),即如果我们没有对它调用shutdown(),那么可以确保它在被回收时调用shutdown()来终止线程。



public static ExecutorService newFixedThreadPool(int nThreads,ThreadFactory threadFactory)
    创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,在需要时使用提供的 ThreadFactory 创建新线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被显式地关闭之前,池中的线程将一直存在。
    参数:
        nThreads - 池中的线程数
        threadFactory - 创建新线程时使用的工厂
    返回:
        新创建的线程池
    抛出:
        NullPointerException - 如果 threadFactory 为 null
        IllegalArgumentException - 如果 nThreads <= 0

作者: 颜宗茂    时间: 2011-12-28 23:03
这个也还不是太理解呵呵。
作者: t_mac    时间: 2011-12-29 10:00
颜宗茂 发表于 2011-12-28 23:03
这个也还不是太理解呵呵。

:(         




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2