Java线程--Callable使用】的更多相关文章

原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871727.html Java线程--Callable使用 Callable和Runnable使用差不多, 但是Callable有返回值, 可以用Future接收. 看代码: public static void main(String[] args) { Callable callable = new Callable() { @Override public Object call()…
Future模式 Future接口是Java线程Future模式的实现,可以来进行异步计算. Future模式可以这样来描述: 我有一个任务,提交给了Future,Future替我完成这个任务.期间我自己可以去做任何想做的事情.一段时间之后,我就便可以从Future那儿取出结果. 就相当于下了一张订货单,一段时间后可以拿着提订单来提货,这期间可以干别的任何事情.其中Future接口就是订货单,真正处理订单的是Executor类,它根据Future接口的要求来生产产品. Callable和Futu…
本文介绍如何向线程池提交任务,并获得任务的执行结果.然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理. 一,执行具体任务的线程类 要想 获得 线程的执行结果,需实现Callable接口.FactorialCalculator 计算 number的阶乘,具体实现如下: import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; /** * Created by Administrator o…
在Java多线程之中,Callable和Future的使用时非常广泛的.在之前的文章中,我们了解了关于Java线程池基础的一些内容,知道如何提交Runnable的任务.但是,Runnable的任务是无法有返回值,也不能抛出异常的.而有些时候,我们希望一个线程能够有一些返回值.在Java 5中,引入了java.util.concurrent.Callable接口,这个接口很类似于Runnable接口,但是可以返回一个对象,或者抛出异常. Java Callable Java的Callable接口使…
回顾: 接上篇博客 java线程--三种创建线程的方式,这篇博客主要介绍第三种方式Callable和Future.比较继承Thread类和实现Runnable接口,接口更加灵活,使用更广泛.但这两种方式都没有返回值,要想返回相应的数据,就要使用Callable和Future方式. 基础: 1.Callable 还是从定义开始,Callable接口有返回值,并且可以抛出异常. /**(有返回值的任务,可能抛出异常) * A task that returns a result and may th…
回顾: 接上篇博客 java线程--三种创建线程的方式,这篇博客主要介绍第三种方式Callable和Future.比较继承Thread类和实现Runnable接口,接口更加灵活,使用更广泛.但这两种方式都没有返回值,要想返回相应的数据,就要使用Callable和Future方式. 基础: 1.Callable 还是从定义开始,Callable接口有返回值,并且可以抛出异常. /**(有返回值的任务,可能抛出异常) * A task that returns a result and may th…
转: Java线程池(Callable+Future模式) Java线程池(Callable+Future模式) Java通过Executors提供四种线程池 1)newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程. 2)newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待. 3)newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务…
线程:线程是进程的组成部分,一个进程可以拥有多个线程,而一个线程必须拥有一个父进程.线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但不能拥有系统资源.它与父进程的其他线程共享该进程的所有资源. 线程的特点: 线程可以完成一定任务,可以和其它线程共享父进程的共享变量和部分环境,相互协作来完成任务. 线程是独立运行的,其不知道进程中是否还有其他线程存在. 线程的执行是抢占式的,也就是说,当前执行的线程随时可能被挂起,以便运行另一个线程. 一个线程可以创建或撤销另一个线程,一个进程中的多个…
Java线程并发:知识点   发布:一个对象是使它能够被当前范围之外的代码所引用: 常见形式:将对象的的引用存储到公共静态域:非私有方法中返回引用:发布内部类实例,包含引用.   逃逸:在对象尚未准备好时就将其发布. 不要让this引用在构造函数中逸出.例,在构造函数中启动线程,线程会包含对象的引用.   同步容器:对容器的所有状态进行穿行访问,Vector.Hashtable,Cllections.synchronizedMap|List 并发容器:ConcurrentHashMap,Copy…
Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发.调试.优化经验,所以线程相关的问题在面试中经常会 被提到. 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnab…