Doug Lea在J.U.C包里面写的BUG又被网友发现了( 三 )
但是 , 这个哥们还说了一句话来兜底 。
他说:Unless i have missed something subtle about the interactions
除非我没有注意到一些非常小的细节问题 。
你看 , 说话的艺术 。 话都被他一个人说完了 。
文章插图
好了 , Paul 同学发言完毕了 。 42 分钟之后 , 一个叫 Chris 的小老弟接过了话筒 , 他这样说的:
文章插图
我觉得吧 , Paul 说的挺有道理的 , 我赞成他的建议 。
文章插图
但是吧 , 我也觉得我们在讨论的是一个非常细节 , 非常小的问题 , 我不知道 , 就算现在这样写 , 会导致任何问题吗?
写到这里 , 先给大家捋一下:
- Martin 老哥提出 BUG 说 FutureTask#isDone 方法没有判断 INTERRUPING 和 COMPLETING 这个两个中间状态是不对的 。
- Paul 同学说 , 对于 INTERRUPING 这个状态 , 可以参照 isCancelled 方法 , 不需要做特殊判断 。
- Chris 小老弟说 Paul 同学说的对 。
文章插图
所以 , 现在只剩下一个中间状态是有争议的了:COMPLETING。
对于剩下的这个中间状态 , 一位叫做 David 的靓仔 , 在三小时后发表了自己的意见:
文章插图
他上来就是一个暴击 , 直截了当的说:我认为在座的各位都是垃圾 。
文章插图
好吧 , 他没有这样说 。
其实他说的是:我认为没有必要做任何改变 。
COMPLETING 状态是一个转瞬即逝的过渡状态 , 它代表我们已经有最终状态了 , 但是在设置最终状态开始和结束的时间间隙内有一个瞬间状态 , 它就是 COMPLETING 状态 。
其实你是可以通过 get 方法知道任务是否是完成了 , 通过 get 方法你可以获得最终的正确答案 。
因为 COMPLETING 这个转瞬即逝的过渡状态是不会被程序给检测到的 。
David 靓仔的回答在两个半小时候得到了大佬的肯定:
文章插图
Doug Lea 说:现在源码里面是故意这样写的 , 原因就是 David 这位靓仔说的 , 我写的时候就是这样考虑过的 。
文章插图
另外 , 我觉得这个 BUG 的提交者自己应该解释我们为什么需要修改这部分代码 。
其实 Doug 的言外之意就是:你说这部分有问题 , 你给我举个例子 , 别只是整理论的 , 你弄点代码给我看看 。
文章插图
半小时之后 , 这个 BUG 的提交者回复了:
文章插图
intentional 知道是啥意思不?
害 , 我又得兼职教英语了:
文章插图
他说:哦 , 原来是故意的呀 。
推荐阅读
- Clearbot:一款能自动在水上追踪收集垃圾的机器人
- Clearfind:帮企业合理规划软件投入 寻找最适合方案
- 齿间洁净 时刻自信 Oclean W1冲牙器抢先体验
- 冲牙器|Oclean W1便携式智能空气动力冲牙器体验:极致便携的小钢炮,给足了让你带上它旅行的理由
- 极致静音体验 Oclean Air2电动牙刷评测
- Google推出XS-Leaks Wiki 普及有关跨站泄露的网络安全知识
- DeepLearningwithPyTorch-1.0 简介
- 猫咪高冷不让抱 Leader空调Home一键秒变“粘人精”
- 乐谈科技|W1智能冲牙器评测:空气动力值得一试,体积最小的Oclean
- 小熊在线|Oclean Air 2超静音电动牙刷图赏,静享私密时刻