首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程变量访问

多线程变量访问
EN

Stack Overflow用户
提问于 2012-12-11 13:51:04
回答 3查看 146关注 0票数 2

我正在运行两个独立的线程(Android SDK),一个是主线程,另一个是统计数字输入传感器上状态变化次数的线程。我希望访问主线程中的状态更改计数,以便将数据发送到其他地方。我是否可以挂起传感器线程,使用getter传递值,然后恢复线程?我还想在采样后重置计数器(使用设置器?)。

实现这一点的最佳实践是什么?

EN

回答 3

Stack Overflow用户

发布于 2012-12-11 14:35:15

这类似于生产者消费者的问题。你可以有一个单一长度的阻塞队列。

主线程--消费者

生产者其他线程(统计状态变化)--

解决生产者-消费者问题的Java API:BlockingQueue

读取其他线程中的值,并将其放入BlockingQueue(大小为1)中。主线程将检查队列并读取值。一旦值被读取,‘其他线程’可以再次放入一个新的value.This,它将保证你的值被主线程读取,然后被重置。

接口名:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html

票数 0
EN

Stack Overflow用户

发布于 2012-12-11 15:11:10

如果计数是一个int,你可以直接从主线程访问它,没有问题。

票数 0
EN

Stack Overflow用户

发布于 2012-12-11 15:20:38

你应该使用synchronized关键字,它可以保证你的代码在同一时间只有一个线程访问。这里有一个包含更多细节的链接,描述了一个与您的用例类似的用例:http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13814416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档