【发布时间】:2011-05-19 13:54:13
【问题描述】:
我在 java 中有一个应用程序,它使用两个不同的线程。为了在这两个线程之间共享数据,我想使用 Singleton 类。
线程间需要共享的数据是(Latitude,Longitude)。
这是我的问题:我应该使用什么来将这些数据存储在 Singleton 类中?
一些列表..?
如果你也能提供一个例子,那就太棒了。谢谢!
这是单例吗????我怎样才能使它成为非单例
编辑:
我有一个执行以下操作的 java 应用程序:
1.第一个线程(它是一个ThreadPool)——我相信它也会写在BlockingQ中 侦听一个端口以接收来自五个不同用户的传入连接 让我们称呼他们:
用户1 用户2 用户3 用户4 用户5
他们每个人都在发送 GPS 数据。
2.第二个线程——将从 BlockingQ 中读取。 同时,我的 Java 应用程序监听第二个端口,等待另一个客户端(不同于发送 GPS 数据的客户端)连接到它。
现在...我有第二个应用程序连接到我刚刚描述的 java 应用程序。
在第二个应用程序中,我有一个列表 user1...user5 并根据我将选择的项目(user1...5)我必须从那里接收正确的数据。
所以现在....我如何在 BlockingQ 中写入/读取数据才能接收正确的数据???
【问题讨论】:
-
在程序执行期间你的数据会改变吗?如果是,建议使用同步方法。
-
一个线程将数据写入类,另一个线程从那里读取数据。但也想存储该数据,因为,是的,它发生了变化。我需要存储它,当读取线程可用时,他可以读!
-
@embry:首先您需要构建一个线程安全的单例 (jguru.com/faq/view.jsp?EID=124425) 以避免之后有两个单例,在从单例获取和设置值时应该使用类似的方法...锁定包含值的对象
-
我做到了;)...现在下一步是什么?
-
@Amine - ..或者他可以把所有的 greif 都省下来,而不是让它成为一个单身人士。