java阻塞队列交替输出ABAB
时间: 2023-07-09 22:22:52 浏览: 158
您可以使用两个线程和阻塞队列来实现交替输出ABAB的效果。以下是一个简单的Java代码示例:
```java
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
public class AlternateOutput {
public static void main(String[] args) {
BlockingQueue<String> queue = new LinkedBlockingQueue<>(1);
Thread threadA = new Thread(new Producer(queue, "A"));
Thread threadB = new Thread(new Producer(queue, "B"));
threadA.start();
threadB.start();
}
}
class Producer implements Runnable {
private BlockingQueue<String> queue;
private String value;
public Producer(BlockingQueue<String> queue, String value) {
this.queue = queue;
this.value = value;
}
@Override
public void run() {
while (true) {
try {
queue.put(value);
System.out.print(queue.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
该示例中使用了两个线程,每个线程都是一个生产者。生产者将自己的值放入阻塞队列中,然后从队列中取出值并输出到控制台。由于阻塞队列的大小为1,因此两个生产者将交替执行,实现了ABAB的交替输出。
阅读全文