@Override public Long getLargestQueueSize() { BlockingQueue<Runnable> queue = executor.getQueue(); if(queue instanceof TrackingLinkedBlockingQueue) { return Long.valueOf(((TrackingLinkedBlockingQueue<?>)queue).getLargestQueueSize()); } return null; }
ExecutorQueue(final int maxBackingQueueSize) { backingQueue = new TrackingLinkedBlockingQueue<>(maxBackingQueueSize); }
@Override @SuppressWarnings("checkstyle:parameterName") public void put(final E e) throws InterruptedException { super.put(e); updateLargestQueueSize(); }
@Override public Runnable poll() { Runnable task = backingQueue.poll(); return task != null ? task : super.poll(); } }
private void updateLargestQueueSize() { final int size = size(); int largest; do { largest = largestQueueSize; } while (size > largest && !LARGEST_QUEUE_SIZE_UPDATER.weakCompareAndSet(this, largest, size)); } }
@Override public Runnable poll() { Runnable task = backingQueue.poll(); return task != null ? task : super.poll(); } }
private void updateLargestQueueSize() { final int size = size(); int largest; do { largest = largestQueueSize; } while (size > largest && !LARGEST_QUEUE_SIZE_UPDATER.weakCompareAndSet(this, largest, size)); } }
public long getLargestQueueSize() { return executorQueue.getBackingQueue().getLargestQueueSize(); }
@Override @SuppressWarnings("checkstyle:parameterName") public void put(final E e) throws InterruptedException { super.put(e); updateLargestQueueSize(); }
task = backingQueue.poll(); if (task == null) {
@Override public final String toString() { return addToStringAttributes(MoreObjects.toStringHelper(this) .add("Thread Prefix", threadPrefix) .add("Current Thread Pool Size", getPoolSize()) .add("Largest Thread Pool Size", getLargestPoolSize()) .add("Max Thread Pool Size", getMaximumPoolSize()) .add("Current Queue Size", executorQueue.getBackingQueue().size()) .add("Largest Queue Size", getLargestQueueSize()) .add("Max Queue Size", maximumQueueSize) .add("Active Thread Count", getActiveCount()) .add("Completed Task Count", getCompletedTaskCount()) .add("Total Task Count", getTaskCount())).toString(); }
ExecutorQueue(final int maxBackingQueueSize) { backingQueue = new TrackingLinkedBlockingQueue<>(maxBackingQueueSize); }
public long getLargestQueueSize() { return ((TrackingLinkedBlockingQueue<?>)getQueue()).getLargestQueueSize(); }
@Override @SuppressWarnings("checkstyle:parameterName") public boolean add(final E e) { boolean result = super.add(e); updateLargestQueueSize(); return result; }
task = backingQueue.poll(); if (task == null) {
@Override public final String toString() { return addToStringAttributes(MoreObjects.toStringHelper(this) .add("Thread Prefix", threadPrefix) .add("Current Thread Pool Size", getPoolSize()) .add("Largest Thread Pool Size", getLargestPoolSize()) .add("Max Thread Pool Size", getMaximumPoolSize()) .add("Current Queue Size", executorQueue.getBackingQueue().size()) .add("Largest Queue Size", getLargestQueueSize()) .add("Max Queue Size", maximumQueueSize) .add("Active Thread Count", getActiveCount()) .add("Completed Task Count", getCompletedTaskCount()) .add("Total Task Count", getTaskCount())).toString(); }
new TrackingLinkedBlockingQueue<>(maximumQueueSize));
public long getLargestQueueSize() { return executorQueue.getBackingQueue().getLargestQueueSize(); }
@Override @SuppressWarnings("checkstyle:parameterName") public boolean offer(final E e) { if (super.offer(e)) { updateLargestQueueSize(); return true; } return false; }
new TrackingLinkedBlockingQueue<>(maximumQueueSize));