code: @Beta
      public static <A, B, T> Predicate<T> sp(final Object mutex, final A a, final B b, final TriPredicate<A, B, T> triPredicate) {
          N.checkArgNotNull(mutex, "mutex");
          N.checkArgNotNull(triPredicate, "triPredicate");
  
          return new Predicate<T>() {
              @Override
              public boolean test(T t) {
                  synchronized (mutex) {
                      return triPredicate.test(a, b, t);
                  }
              }
          };
      }
docs: Synchronized {@code Predicate}
  
  @param mutex to synchronized on
  @param a
  @param b
  @param triPredicate
  @return