【发布时间】:2015-09-08 01:33:04
【问题描述】:
我正在寻找的是在两个不同线程之间共享数据的最佳解决方案。 我已经写了自己的解决方案,但我很想听听别人的想法。
场景如下: 主线程启动 2 个不同的线程,它们同时运行。
第一个(Reader)必须从InputStream 源读取值,然后将它们存储到Java bean 对象中。
第二个(Sender)必须每隔 X 秒从前一个 java 对象中获取值并将它们发送到 Web 服务。
该场景的主要特殊性是对象必须“实时”共享。我的意思是:
我上面提到的 InputStream 源,没有尽头。 Reader 线程不停止从该源读取,并提供使用读取的新值更新共享对象的实例。 Sender 必须每隔 x 秒拍摄对象的“快照”,以便将其发送到 Web 服务。
出于这个原因,我认为生产者/消费者模式对我不利,因为生产者线程无法产生“完整”对象,但他只能不断更新同一个对象。
考虑到这个程序必须在嵌入式平台上运行,性能和优化非常重要。
你的解决方案是什么?
-- 编辑-- 原谅我,我意识到该场景的一个重要功能(这使得其他人已经回答了对我的目的不利的 stackoverflow 问题)丢失了,我已经编辑了我的问题,包括最后一部分。
【问题讨论】:
-
您能先发布您的解决方案吗?
-
抱歉,我无法发布我的代码,因为它是我公司的财产。
-
“你的解决方案是什么?”那要看。你有什么问题?您的问题描述了程序的要求。我的解决方案是编写程序。你可以说得更详细点吗? (即,向我们展示一些不符合您预期的代码,描述您的预期,然后我们可以从那里继续。)
标签: java multithreading performance optimization data-sharing