gpt4 book ai didi

java - 将线程的结果返回到单独的线程

转载 作者:行者123 更新时间:2023-11-29 07:04:28 25 4
gpt4 key购买 nike

例如,如果我有线程 A 和线程 B。线程 A 是我的主线程,大部分应用程序都在其中运行,但当我需要从 MySQL 或其他外部源获取值时,我会创建一个新线程(线程 B)。

将值从线程 B 返回到线程 A 以进行进一步处理而不导致线程 A 等待值可用的最佳方法是什么?

最佳答案

如果您只有一项任务需要完成,您可以使用 Future并让另一个线程在方便时轮询(非阻塞)isDone() 方法。

如果该任务经常执行或者您有许多任务要执行,请使用 ConcurrentLinkedQueue可能是一个更好的主意,它也有一个变体,它支持阻塞直到结果作为 LinkedBlockingQueue 交付。 .再次重申:只要方便,就可以在列表上进行投票。

如果您不想轮询,则可以使用回调功能。例如,如果您使用 Swing GUI,您可以让数据库线程调用 invokeLater来自 SwingUtilities 类,因此在下一个可能的时间在主 Swing 线程上处理请求。

这是基于 EventQueue类,在某些其他场景中使用起来可能更方便。

关于java - 将线程的结果返回到单独的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21399662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com