首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待多个阻塞队列

等待多个阻塞队列
EN

Stack Overflow用户
提问于 2018-08-15 17:37:08
回答 2查看 180关注 0票数 1

如何在Java中等待多个阻塞队列?

例如,如果有一位客户想要进入候机室。有3个候机室,每个候机室都有固定数量的座位。

考虑到这是一个并发编程问题,客户如何同时等待所有这些。

代码语言:javascript
复制
  terminal.waitingArea1.enterWaitingArea(this);
  terminal.waitingArea2.enterWaitingArea(this);
  terminal.waitingArea3.enterWaitingArea(this);

如果我进入了一个单独的区域,我应该放弃等待别人的区域。怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2018-08-15 17:43:15

基本逻辑是:

  1. 使用布尔变量(即,flag),该变量最初设置为使对象进入等待区域,请检查标志。
  2. 如果标志为false,请将其设置为true,然后执行所需的operations.
  3. If标志为true,只需从队列中删除对象,而不执行任何操作。

如果您正在使用多线程,请在对象上使用synchronized

票数 0
EN

Stack Overflow用户

发布于 2018-08-15 18:36:12

保留对this Customer正在等待的Customer中的队列的引用。什么时候

进入单个区域

this正在等待的除此队列之外的所有队列中删除this Customerremove操作应为synchronized

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

https://stackoverflow.com/questions/51856308

复制
相关文章

相似问题

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