java-如何不断等待事件发生

前端之家收集整理的这篇文章主要介绍了java-如何不断等待事件发生前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在创建一个应用程序,其中有多个阶段 – 每个阶段都会在Amazon Simple Work Flow(SWF)中将消息发送到我的队列…应用程序应为每个收到的消息启动一个新线程.

如何实现等待部分 – 以便应用程序不断扫描队列中的新消息并在收到消息时采取措施?

最佳答案
你问的是一个生产者 – 消费者模型
你可以读到它here

基本理念:网站是生产者,您作为客户是消费者.

你等待()直到听众收到一条消息然后notifAll()

    class WaitForAmazon{
    private boolean available = false;
    private int contents;

    public synchronized int consumer() {
        while (available == false) {
            try {
                wait();
            } catch (InterruptedException e) { }
        }
        available = false;
        notifyAll();
        return contents;
    }

    public synchronized void producer(int value) {
        while (available == true) {
            try {
                wait();
            } catch (InterruptedException e) { }
        }
        contents = value;
        available = true;
        notifyAll();
    }
}

猜你在找的Java相关文章