android/guava/src/com/google/common/util/concurrent/Striped.java
static <L> Striped<L> custom(int stripes, Supplier<L> supplier) {
    return new CompactStriped<>(stripes, supplier);
  }
static <L> Striped<L> custom(int stripes, Supplier<L> supplier) {
    return new CompactStriped<>(stripes, supplier);
  }
Creates a {@code Striped<L>} with eagerly initialized, strongly referenced locks. Every lock is
obtained from the passed supplier.

@param stripes the minimum number of stripes (locks) required
@param supplier a {@code Supplier<L>} object to obtain locks from
@return a new {@code Striped<L>}