等待多个阻塞队列

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

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

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

  terminal.waitingArea1.enterWaitingArea(this);
  terminal.waitingArea2.enterWaitingArea(this);
  terminal.waitingArea3.enterWaitingArea(this);

如果我进入一个区域,我应该放弃等待其他区域。如何才能做到这一点?


慕码人8056858
浏览 143回答 2
2回答

BIG阳

基本逻辑是:使用布尔变量(即 a flag),最初设置为false。当物体进入等候区时,检查标志。如果标志为false,则将其设置为 true,然后执行所需的操作。如果标志是true,只需从队列中删除对象,不做任何事情。如果您使用多个线程,请synchronized在对象上使用。

qq_遁去的一_1

保持引用队列中Customer那this Customer等待。什么时候进入一个区域this Customer从this除此队列之外的所有等待队列中删除,remove操作应该是synchronized。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java