java 五 多线程相关的部分接口和类
java 5 多线程相关的部分接口和类
java.lang.Runnable接口: Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。
java.lang.Thread extends Object implements Runnable:线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。
java.util.concurrent. Callable<V>接口:返回结果并且可能抛出异常的任务。类必须定义一个称为 call 的无参数方法,并有返回值V。 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
java.util.concurrent.Executor接口:执行已提交的 Runnable 任务的对象。类必须定义一个称为 execute 的含Runnable参数的方法,并无返回值。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。通常使用 Executor 而不是显式地创建线程。
java.util.concurrent.Executors extends Object:此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:
创建并返回设置有常用配置字符串的 ExecutorService 的方法。
创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。
Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和 Executors.newSingleThreadExecutor()(单个后台线程),它们均为大多数使用场景预定义了设置。
java.util.concurrent.ThreadFactory接口:根据需要创建新线程的对象。使用线程工厂就无需再手工编写对 new Thread 的调用了,从而允许应用程序使用特殊的线程子类、属性等等。Executors.defaultThreadFactory() 方法提供了更有用的简单实现,即在返回线程前将已创建线程的上下文设置为已知的值。
java.util.concurrent.ExecutorService extends Executor接口:为Executor 提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成 Future 的方法。通过创建并返回一个可用于取消执行和/或等待完成的 Future,方法 submit(有Future返回值) 扩展了基本方法 Executor.execute(java.lang.Runnable)(无返回值)。
java.util.concurrent.class ThreadPoolExecutor extends AbstractExecutorService:一个 已实现ExecutorService接口的线程池类,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。
java.util.concurrent.Future<V>接口:Future 表示异步计算的结果。
java.util.concurrent.FutureTask<V> extends Object implements Future<V>, Runnable:可取消的异步计算类。利用开始和取消计算的方法、查询计算是否完成的方法和检索计算结果的方法,此类提供了对 Future 的基本实现。
java.lang.Runnable接口: Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。
public interface Runnable { public abstract void run(); }
java.lang.Thread extends Object implements Runnable:线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。
java.util.concurrent. Callable<V>接口:返回结果并且可能抛出异常的任务。类必须定义一个称为 call 的无参数方法,并有返回值V。 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
public interface Callable<V> { V call() throws Exception; }
java.util.concurrent.Executor接口:执行已提交的 Runnable 任务的对象。类必须定义一个称为 execute 的含Runnable参数的方法,并无返回值。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。通常使用 Executor 而不是显式地创建线程。
public interface Executor { void execute(Runnable command); }
java.util.concurrent.Executors extends Object:此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:
创建并返回设置有常用配置字符串的 ExecutorService 的方法。
创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。
Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和 Executors.newSingleThreadExecutor()(单个后台线程),它们均为大多数使用场景预定义了设置。
public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()); } public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>())); } public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); }
java.util.concurrent.ThreadFactory接口:根据需要创建新线程的对象。使用线程工厂就无需再手工编写对 new Thread 的调用了,从而允许应用程序使用特殊的线程子类、属性等等。Executors.defaultThreadFactory() 方法提供了更有用的简单实现,即在返回线程前将已创建线程的上下文设置为已知的值。
public interface ThreadFactory { Thread newThread(Runnable r); }
java.util.concurrent.ExecutorService extends Executor接口:为Executor 提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成 Future 的方法。通过创建并返回一个可用于取消执行和/或等待完成的 Future,方法 submit(有Future返回值) 扩展了基本方法 Executor.execute(java.lang.Runnable)(无返回值)。
java.util.concurrent.class ThreadPoolExecutor extends AbstractExecutorService:一个 已实现ExecutorService接口的线程池类,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。
java.util.concurrent.Future<V>接口:Future 表示异步计算的结果。
java.util.concurrent.FutureTask<V> extends Object implements Future<V>, Runnable:可取消的异步计算类。利用开始和取消计算的方法、查询计算是否完成的方法和检索计算结果的方法,此类提供了对 Future 的基本实现。