Java线程监听器

时间:2014-09-03 05:32:40

标签: java list queue runnable

我想创建一个包含里面列表的runnable类。在运行时,线程将监听任何列表更改并处理其中的所有元素。这是我的想法。

下面是我的代码,但是当我将新元素添加到列表或列表更改时,它仍然不执行process()。请给我一些帮助。

public class QueueService implements Runnable {

    private List<Request> requestQueue;

    public synchronized void add(Request request) {
        if (requestQueue == null) {
            requestQueue = new LinkedList<Request>();
        }

        requestQueue.add(request);
        LOGGER.info("Added new request");
    }

    @Override
    public void run() {
        LOGGER.info("Queue started...");

        while (true) {
            if (requestQueue != null) {
                process();
            }
        } 
    }

    private synchronized void process() {
        try {
            Iterator<VMRequest> requests = requestQueue.iterator();

            while(requests.hasNext()) {
                Request req = requests.next();

                // process each element and remove when done
            }
        } catch (Exception e) {
            LOGGER.info(e.getMessage());
        }
    }
}

0 个答案:

没有答案