code: public final Collection<Thread> getExclusiveQueuedThreads() {
          ArrayList<Thread> list = new ArrayList<>();
          for (Node p = tail; p != null; p = p.prev) {
              if (!p.isShared()) {
                  Thread t = p.thread;
                  if (t != null)
                      list.add(t);
              }
          }
          return list;
      }
docs: Returns a collection containing threads that may be waiting to
  acquire in exclusive mode. This has the same properties
  as {@link #getQueuedThreads} except that it only returns
  those threads waiting due to an exclusive acquire.
  
  @return the collection of threads