docs: public void queue(final AsyncEvent<K> _event) {
      final K key = _event.getKey();
      synchronized (getLockObject(key)) {
        Queue<AsyncEvent<K>> q = keyQueue.get(key);
        if (q != null) {
          q.add(_event);
          return;
        }
        q = new LinkedList<AsyncEvent<K>>();
        keyQueue.put(key, q);
      }
      Runnable r = new Runnable() {
        @Override
        public void run() {
          runMoreOrStop(_event);
        }
      };
      executor.execute(r);
    }