public Request remove() {
        synchronized (ReqList) {
            if (size() <= 0) {
                return null;
            }
            Request ret = (Request) ReqList.get(0);
            ReqList.remove(0);
            change_signal(true);
            return ret;
        }
    }