栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

获取线程的输出

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取线程的输出

除非绝对需要强大的功能和灵活性,否则请不要使用诸如线程之类的低级构造。

您可以使用ExecutorService(例如ThreadPoolExecutor)来提交()
Callables。这将返回一个Future对象。

使用该

Future
对象,您可以轻松地检查它是否完成并获得结果(
get()
如果尚未完成,则包括阻塞)。

这些构造将大大简化最常见的线程操作。

我想澄清有关阻塞的信息

get()

这个想法是,您想运行一些任务(这些任务

Callable
)来完成某些工作(计算,资源访问等),而这些工作 现在
不需要结果。您可以仅依靠来在
Executor
需要时运行您的代码(如果是,
ThreadPoolExecutor
则只要有可用的线程就可以运行)。然后在某个时间点,您可能
需要
计算结果才能继续。此时,您应该致电
get()
。如果该任务已经在该点运行,则将
get()
立即返回该值。如果任务未完成,则
get()
呼叫将等待,直到任务完成。这通常是理想的,因为无论如何您都无法完成任务。

当您不需要该值继续时,但是想知道它是否已经可用时(可以在UI中显示某些内容),那么您可以轻松地调用,

isDone()
并且仅
get()
在返回时调用
true
)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455612.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号