java 多线程执行

原文链接:http://www.cnblogs.com/lvjianwei/p/10877661.html

java 多线程执行

 

多线程需要实现的接口

名称 功能 子接口 实现类

Callable<V>

java.util.concurrent

1.有返回值

2.可以抛出受检查异常

DocumentationTool.DocumentationTask

JavaCompiler.CompilationTask

-

Runnable

java.lang

1.无返回值

2.不可以抛出受检查异常

RunnableFuture<V>, 

RunnableScheduledFuture<V>

AsyncBoxView.ChildState

ForkJoinWorkerThread

FutureTask

RenderableImageProducer

SwingWorker

Thread

TimerTask

 

执行多线程的接口

名称 功能 父接口 子接口 实现类/子类

Executor

java.util.concurrent

1.处理Runnable对象

2.不返回结果

 -

ExecutorService

ScheduledExecutorService

AbstractExecutorService

ForkJoinPool

ScheduledThreadPoolExecutor

ThreadPoolExecutor

ExecutorService

java.util.concurrent

1.处理Runnable对象

2.处理Callable对象

3.可以返回Future对象存储结果

4.提交线程(单个\批量)

5.中断线程

 Executor  ScheduledExecutorService

AbstractExecutorService

ForkJoinPool

ScheduledThreadPoolExecutor

ThreadPoolExecutor

 

ScheduledExecutorService

 java.util.concurrent

 与ExecutorService类似,

增加了执行时间控制。

Executor

ExecutorService 

 -  ScheduledThreadPoolExecutor

 

 

执行多线程的类

名称 功能 接口 父类 子类

Thread

java.lang

1.创建线程

2.操作线程

Runnable

 - ForkJoinWorkerThread

Executors

java.util.concurrent Factory and utility methods for ExecutorExecutorServiceScheduledExecutorService

-

 -

-

AbstractExecutorService

java.util.concurrent  Provides default implementations of ExecutorService execution methods.

Executor

ExecutorService

 -

ForkJoinPool

ThreadPoolExecutor

ForkJoinPool

java.util.concurrent  运行ForkJoinTasks

Executor

ExecutorService

AbstractExecutorService

 -

ThreadPoolExecutor

 java.util.concurrent

1.减少启用线程的成本

2.提供限制和控制资源的方法

ExecutorExecutorService

AbstractExecutorService

 ScheduledThreadPoolExecutor
 

ScheduledThreadPoolExecutor

java.util.concurrent  ThreadPoolExecutor的补充,增加时间控制

Executor

ExecutorService

ScheduledExecutorService

ThreadPoolExecutor

 -

 

 

多线程返回结果的接口

 

名称 功能 父接口 子接口 实现类

Future<V>

java.util.concurrent

返回异步执行结果

 -

ExecutorService

ScheduledExecutorService

AbstractExecutorService

ForkJoinPool

ScheduledThreadPoolExecutor

ThreadPoolExecutor

RunnableFuture<V>

 java.util.concurrent

 继承Runable接口,

增加run方法

Future<V>, 

Runnable

 RunnableScheduledFuture<V>

FutureTask

SwingWorker

 

ScheduledFuture<V>

 java.util.concurrent  增加了时间控制

Comparable<Delayed>, 

Delayed

Future<V>

 -  -
 

RunnableScheduledFuture<V>

 java.util.concurrent

 继承了Runnable接口,

增加了时间控制

Comparable<Delayed>, 

DelayedFuture<V>, 

Runnable

RunnableFuture<V>,

ScheduledFuture<V>

 -  -

 

 

 

多线程返回结果的类

 

名称 功能 接口 父类 子类

 CompletableFuture<T>

 java.util.concurrent

1.Future接口最简单实现。

2.可以方便的定义操作结束后需要执行的操作。

CompletionStage<T>, 

Future<T>

 -  -

 ForkJoinTask<V>

 java.util.concurrent

1.类似Thread但是更小,消耗更小。

2.适合执行规模较小的任务。

Serializable

Future<V>

 -

CountedCompleter

RecursiveAction

RecursiveTask

 

CountedCompleter<T>

  java.util.concurrent  有个计数器,可以控制运行状态。  

Serializable

Future<T>

 ForkJoinTask<T>  -

 FutureTask<V>

 java.util.concurrent

1.Future接口基本实现。

2.没有执行完毕,查询结果会阻塞当前线程。

Runnable

Future<V>, 

RunnableFuture<V>

 -  
 

RecursiveAction

java.util.concurrent  ThreadPoolExecutor的补充,增加时间控制。

Executor

ExecutorService

ScheduledExecutorService

ThreadPoolExecutor

 -

RecursiveTask<V>

java.util.concurrent  支持递归的ForkJoinTask<V>。    ForkJoinTask<V>  -

RecursiveAction

java.util.concurrent

支持递归的ForkJoinTask<V>,

但没有返回结果。

Serializable

Future<Void>

 ForkJoinTask<Void>  -

转载于:https://www.cnblogs.com/lvjianwei/p/10877661.html

上一篇:如何使用ExecutorService进行轮询直到结果到达


下一篇:java – ExecutorService SingleThreadExecutor