如何在 Java 中等待多个阻塞队列?
例如,如果有一位顾客想要进入等候室。 候机室共有3个,每个候机室都有固定数量的座位。
考虑到这是一个并发编程问题,客户如何同时等待所有这些。
terminal.waitingArea1.enterWaitingArea(this);
terminal.waitingArea2.enterWaitingArea(this);
terminal.waitingArea3.enterWaitingArea(this);
如果我进入一个区域,我应该放弃等待其他区域。如何做到这一点?
最佳答案
基本逻辑是:
使用 boolean 变量(即
标志
),最初设置为false
。当物体进入等待区域时,检查标志。
如果标志为
false
,请将其设置为true,然后执行所需的操作。如果该标志为
true
,则只需从队列中删除该对象,而不执行任何操作。
如果您使用多个线程,请在对象上使用synchronized
。
关于java - 等待多个阻塞队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51856308/