首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java多线程问题

Java多线程问题
EN

Stack Overflow用户
提问于 2016-12-30 19:56:03
回答 0查看 83关注 0票数 0

我有一个包含数据的对象,我正在用这个对象排队一个Action (与一个可以执行的方法接口)(动作将使用其方法内的对象数据),排队的动作将从另一个线程执行。

我希望在将对象发送到操作队列之后锁定它(从我的主线程)。

因为我不希望对象的数据在另一个线程通过操作队列处理它之前被更改。

一旦动作队列被处理,我希望对象从另一个线程中被解锁。

代码说明:

代码语言:javascript
运行
复制
// THREAD 1
final Object object = getObjectFromSomeWhere(); 

// lock the object here

concurrentActionQueue.add(new Action() {
        @Override
        public void execute() {
          // will be executed from THREAD 2
          // do something with object

          //unlock here once the data is processed

        }

您可能会说,我可以将对象的副本发送到Action,但我的对象包含非常大的数据,并且复制要花费很多时间,所以我不能。

有没有办法不对我的对象硬编码lock()和unlock()方法呢?

EN

回答

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

https://stackoverflow.com/questions/41395870

复制
相关文章

相似问题

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