相关疑难解决方法(0)

异步通知具有可用项目的BlockingQueue

Object当一些BlockingQueue人有一个项目给我时,我需要异步通知.

我已经在Javadoc和网络上搜索了一个预先制定的解决方案,然后我最终得到了一个(也许是天真的)我的解决方案,这里是:

interface QueueWaiterListener<T> {
    public void itemAvailable(T item, Object cookie);
}
Run Code Online (Sandbox Code Playgroud)

class QueueWaiter<T> extends Thread {

    protected final BlockingQueue<T> queue;
    protected final QueueWaiterListener<T> listener;
    protected final Object cookie;

    public QueueWaiter(BlockingQueue<T> queue, QueueWaiterListener<T> listener, Object cookie) {
        this.queue = queue;
        this.listener = listener;
        this.cookie = cookie;
    }

    public QueueWaiter(BlockingQueue<T> queue, QueueWaiterListener<T> listener) {
        this.queue = queue;
        this.listener = listener;
        this.cookie = null;
    }

    @Override
    public void run() {
        while (!isInterrupted()) {
            try {
                T item = …
Run Code Online (Sandbox Code Playgroud)

java concurrency blockingqueue

11
推荐指数
1
解决办法
9276
查看次数

标签 统计

blockingqueue ×1

concurrency ×1

java ×1