java中FutureTask源码解析

本文介绍了FutureTask,它是接口Future的实现,可保存callable异步处理返回的结果。还列举了FutureTask中的部分变量,代表不同任务状态。总结了其状态流转的四种情况,包括正常执行、执行异常、取消不响应中断、取消响应中断,且指出部分状态为最终状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:

FutureTask是接口Future的实现,可以保存callable异步处理返回的结果。

FutureTask中部分变量如下:

private static final int NEW          = 0; //任务新建和执行中
private static final int COMPLETING   = 1; //任务将要执行完毕
private static final int NORMAL       = 2; //任务正常执行结束
private static final int EXCEPTIONAL  = 3; //任务异常
private static final int CANCELLED    = 4; //任务取消
private static final int INTERRUPTING = 5; //任务线程即将被中断
private static final int INTERRUPTED  = 6; //任务线程已中断
 

总结下,FutureTask的状态流转过程,可以出现以下四种情况:

        1. 任务正常执行并返回。 NEW -> COMPLETING -> NORMAL

      2. 执行中出现异常。NEW -> COMPLETING -> EXCEPTIONAL

        3. 任务执行过程中被取消,并且不响应中断。NEW -> CANCELLED

      4. 任务执行过程中被取消,并且响应中断。 NEW -> INTERRUPTING -> INTERRUPTED
 其中NORMAL、EXCEPTIONAL、CANCELLED和INTERRUPTED都是最终状态。

参考:https://blog.youkuaiyun.com/liangwenmail/article/details/81477587

参考:https://blog.youkuaiyun.com/xingzhong128/article/details/80553789

参考:https://www.cnblogs.com/linghu-java/p/8991824.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值