知识大全 Java线程池在运行后的结果反查

Posted

篇首语:满堂花醉三千客,一剑霜寒十四州。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java线程池在运行后的结果反查相关的知识,希望对你有一定的参考价值。

Java线程池在运行后的结果反查  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java线程池需要不断的学习 在学习的时候我们就要注意不少的问题 下面我们就来看看具体的语言运作环境如何才能满足Java线程池相关程序的运行 希望大家有所收获

  无论是接收Runnable型参数 还是接收Callable型参数的submit()方法 都会返回一个Future(也是一个接口)类型的对象 该对象中包含了任务的执行情况以及结果 调用Future的boolean isDone()方法可以获知任务是否执行完毕 调用Object get()方法可以获得任务执行后的返回结果 如果此时任务还没有执行完 get()方法会保持等待 直到相应的任务执行完毕后 才会将结果返回

  我们用下面的一个例子来演示Java 中Java线程池的使用

  Java代码

   import ncurrent *;

   public class ExecutorTest

   public static void main(String[] args) throws

  InterruptedException

   ExecutionException

   ExecutorService es = Executors newSingleThreadExecutor();

   Future fr = es submit(new RunnableTest());// 提交任务

   Future fc = es submit(new CallableTest());// 提交任务

   // 取得返回值并输出

   System out println((String) fc get());

   // 检查任务是否执行完毕

   if (fr isDone())

   System out println( 执行完毕 RunnableTest run() );

   else

   System out println( 未执行完 RunnableTest run() );

  

   // 检查任务是否执行完毕

   if (fc isDone())

   System out println( 执行完毕 CallableTest run() );

   else

   System out println( 未执行完 CallableTest run() );

  

   // 停止线程池服务

   es shutdown();

  

  

   class RunnableTest implements Runnable

   public void run()

   System out println( 已经执行 RunnableTest run() );

  

  

   class CallableTest implements Callable

   public Object call()

   System out println( 已经执行 CallableTest call() );

   return 返回值 CallableTest call() ;

  

  

   import ncurrent *;

   public class ExecutorTest

   public static void main(String[] args) throws

  InterruptedException

   ExecutionException

   ExecutorService es = Executors newSingleThreadExecutor();

   Future fr = es submit(new RunnableTest());// 提交任务

   Future fc = es submit(new CallableTest());// 提交任务

   // 取得返回值并输出

   System out println((String) fc get());

   // 检查任务是否执行完毕

   if (fr isDone())

   System out println( 执行完毕 RunnableTest run() );

   else

   System out println( 未执行完 RunnableTest run() );

  

   // 检查任务是否执行完毕

   if (fc isDone())

   System out println( 执行完毕 CallableTest run() );

   else

   System out println( 未执行完 CallableTest run() );

  

   // 停止线程池服务

   es shutdown();

  

  

   class RunnableTest implements Runnable

   public void run()

   System out println( 已经执行 RunnableTest run() );

  

  

   class CallableTest implements Callable

   public Object call()

   System out println( 已经执行 CallableTest call() );

   return 返回值 CallableTest call() ;

  

  

  运行结果

  已经执行 RunnableTest run()

  已经执行 CallableTest call()

  返回值 CallableTest call()

  执行完毕 RunnableTest run()

  执行完毕 CallableTest run()

cha138/Article/program/Java/gj/201311/27283

相关参考

知识大全 获取java线程中信息的两种方法[2]

   以上是一个多数熟悉单线程编程的人在第一反应下给出的实现方法但是该类在运行的时候输出的结果却不是期望的HelloWorld!而是Hello这是由于线程的竞争条件导致的

知识大全 Java多线程进程应对同一程序运行资源

Java多线程进程应对同一程序运行资源  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java多

知识大全 Java如何中断一个正在运行的线程

Java如何中断一个正在运行的线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  程序是很简易的

知识大全 基于Java 2运行时安全模型的线程协作

基于Java2运行时安全模型的线程协作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Java

知识大全 java定时启动线程

  在实际应用中很多情况需要定时运行程序比如分钟或者小时执行一次程序对此操作java和C#一样可以使用Timer计时器实现即javautilTimer中的Timer类  Timer的定义Timerti

知识大全 Java 6中的线程优化真的有效么

Java6中的线程优化真的有效么?[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于结果

知识大全 获取java线程中信息的两种方法[1]

   在进行多线程编程中比较重要也是比较困难的一个操作就是如何获取线程中的信息大多数人会采取比较常见的一种方法就是将线程中要返回的结果存储在一个字段中然后再提供一个获取方

知识大全 Java 6中的线程优化真的有效么

Java6中的线程优化真的有效么?[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  运行基准

知识大全 获取java线程中信息的两种方法[3]

   二回调   轮询方法最大的特点是主类Main不断询问线程类是否结束这实际上大量浪费了运行时间特别是当线程特别多的时候因此如果反过来在线

知识大全 多线程编程您不知道的5件事

   多线程编程向来不容易但很少有Java?开发人员能够忽视多线程编程和支持它的Java平台库我们临时学习线程在需要时向我们的工具箱添加新的技巧和技术以这种方式构建和运行