读书人

一个同步行列例子

发布时间: 2012-09-17 12:06:52 作者: rapoo

一个同步队列例子
这个用的也比较少, 做一个参考, 原文见这里

private BlockingQueue workQueue = new LinkedBlockingQueue();private Map commandQueueMap = new ConcurrentHashMap();  public SynchronousQueue addCommand(Command command) {    SynchronousQueue queue = new SynchronousQueue();    commandQueueMap.put(command, queue);    workQueue.offer(command);    return queue;} public Object call() throws Exception {    try {        Command command = workQueue.take();        Result result = command.execute();        SynchronousQueue queue = commandQueueMap.get(command);        queue.offer(result);        return null;    } catch (InterruptedException e) {        throw new WorkException(e);    }}


Command command;SynchronousQueue queue = commandRunner.addCommand(command);Result result = queue.poll(2, TimeUnit.MINUTES);if (result == null) {throw new CommandTooLongException(command);} else {return result;}

1 楼 qq123zhz 2012-04-06 我用的是arrayBlockQueue。。。

读书人网 >编程

热点推荐