如何在Java中等待多个阻塞队列?
例如,如果有一位客户想要进入候机室。有3个候机室,每个候机室都有固定数量的座位。
考虑到这是一个并发编程问题,客户如何同时等待所有这些。
terminal.waitingArea1.enterWaitingArea(this);
terminal.waitingArea2.enterWaitingArea(this);
terminal.waitingArea3.enterWaitingArea(this);如果我进入了一个单独的区域,我应该放弃等待别人的区域。怎么做呢?
发布于 2018-08-15 17:43:15
基本逻辑是:
flag),该变量最初设置为使对象进入等待区域,请检查标志。false,请将其设置为true,然后执行所需的operations.true,只需从队列中删除对象,而不执行任何操作。如果您正在使用多线程,请在对象上使用synchronized。
发布于 2018-08-15 18:36:12
保留对this Customer正在等待的Customer中的队列的引用。什么时候
进入单个区域
从this正在等待的除此队列之外的所有队列中删除this Customer,remove操作应为synchronized。
https://stackoverflow.com/questions/51856308
复制相似问题