一般使用线程池执行任务都是调用的execute方法,这个方法定义在Executor接口中: 这个方法是没有返回值的,而且只接受Runnable。 那么像得到线程的返回值怎嘛办呢? 在ExecutorService接口中能找到这个方法: 这个方法接收两种参数 ...
常用的Thread类在run方法执行完之后是没有返回值的,要实现子线程完成任务后返回值给主线程需要借助第三方转存。Callable接口则提供了一种有返回值的多线程实现方法。下面以一个简单的地主 监工和长工的例子展示这种接口的用法。 长工类: 长工类实现了Callable接口,线程运行完成后返回一个Integer值。 importjava.util.concurrent.Callable publ ...
2012-09-26 16:44 0 9765 推荐指数:
一般使用线程池执行任务都是调用的execute方法,这个方法定义在Executor接口中: 这个方法是没有返回值的,而且只接受Runnable。 那么像得到线程的返回值怎嘛办呢? 在ExecutorService接口中能找到这个方法: 这个方法接收两种参数 ...
Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两个线程同时来调用同一个计算对象,计算对象的call方法会被调用几次你知道吗?如果这些你知道 ...
为什么要是用Callable和Future Runnable的局限性 Executor采用Runnable作为基本的表达形式,虽然Runnable的run方法能够写入日志,写入文件,写入数据库等操作,但是它不能返回一个值,或者抛出一个受检查的异常,有些需要返回值的需求就不能满足了。 能够取消 ...
目录 1.主线程等待法 2.使用Thread类的join()阻塞当前线程,等待子线程执行完毕 3.通过Callable接口实现:通过FutureTask Or线程池获取 四、线程返回值获取方式和Callable接口 1.主线程等待法 2.使用Thread类的join ...
一、Future Future和Callable基本是成对出现的,Callable负责产生结果,Future负责获取结果。 1、Callable接口类似于Runnable,只是Runnable没有返回值。 2、Callable任务除了返回正常结果之外,如果发生 ...
在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。现在Java终于有可返回值的任务(也可以叫做线程)了。 可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后 ...
一、概述 到目前为止,我们已经能够声明并使一个线程任务运行起来了。但是遇到一个问题:现在定义的任务都没有任何返回值,那么加入我们希望一个任务运行结束后告诉我一个结果,该结果表名任务执行成功或失败,此时该怎么办呢? 答案是使用Callable。之前定义的任务都直接实现了Runnable ...
并发编程使我们可以将程序分为很多个分离的,相互之间独立的任务,通过使用多线程的机制,将每个任务都会有一个执行线程来单独的驱动,一个线程是 进程中一个单一顺序控制流,一个进程可以拥有多个线程,也就相当于有多个单独的顺序控制流,所以你的进程当中每个线程看起来都是有单独的cpu一样,底层实现就是切分 ...