Returns the number of bytes that can be read (or skipped) without exceeding the current throughput limit.
This method blocks until at least 1 byte is available. In other words the method always returns
strictly positive values.
If the current throughput limit is negative (no limit), this method returns immediately Integer.MAX_VALUE.
If the byte quota for the current second has been exceeded, this method locks and returns as soon as a new second
has started (i.e. bytes are available), or the
#setThroughputLimit(long) with a more permissive value
has been called.
If the current throughput limit is 0, it will lock undefinitely, until
#setThroughputLimit(long) has
been called from another thread with a value different from 0.