public E get() {
        E e = null;
        for (;;) {
            int idx = readSeq.incrementAndGet() % getCircleSize();
            ArrayBlockingQueue<E> queue = data.get(idx);
            try {
                if (queue.peek() != null) {
                    e = queue.poll(5, TimeUnit.MILLISECONDS);
                    if (e != null) {
                        break;
                    }
                }
            } catch (Exception ex) {
            }
        }
        return e;
    }