java - 等待多个阻塞队列

标签 java multithreading blockingqueue

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

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

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

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

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

最佳答案

基本逻辑是:

  1. 使用 boolean 变量(即标志),最初设置为false

  2. 当物体进入等待区域时,检查标志。

  3. 如果标志为false,请将其设置为true,然后执行所需的操作。

  4. 如果该标志为true,则只需从队列中删除该对象,而不执行任何操作。

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

关于java - 等待多个阻塞队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51856308/

相关文章:

java - "text/plain; charset=ISO-8859-2"电子邮件正文类型中的新行

java - Android GUI 不显示

c - 我怎样才能让多个线程同时工作?

multithreading - 我们是否应该使用Task.Delay替换Thread.Sleep

Java BlockingQueue 似乎在传输过程中损坏了数据

java - 如何从父序列值填充子复合键(Hibernate、JPA)?

java - Eclipse 中的快速编译器错误消息

java - 取前如何查看BlockingQueue头元素?

c - 当一个线程被阻塞时,其他线程会发生什么?

java - 我的传感器监控技术有什么问题?