Package org.apache.tomcat.util.threads
Class TaskQueue
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractQueue<E>
-
- java.util.concurrent.LinkedBlockingQueue<java.lang.Runnable>
-
- org.apache.tomcat.util.threads.TaskQueue
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Iterable<java.lang.Runnable>
,java.util.Collection<java.lang.Runnable>
,java.util.concurrent.BlockingQueue<java.lang.Runnable>
,java.util.Queue<java.lang.Runnable>
public class TaskQueue extends java.util.concurrent.LinkedBlockingQueue<java.lang.Runnable>
As task queue specifically designed to run with a thread pool executor. The task queue is optimised to properly utilize threads within a thread pool executor. If you use a normal queue, the executor will spawn threads when there are idle threads and you won't be able to force items onto the queue itself.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringManager
sm
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
force(java.lang.Runnable o)
Used to add a task to the queue if the task has been rejected by the Executor.boolean
offer(java.lang.Runnable o)
java.lang.Runnable
poll(long timeout, java.util.concurrent.TimeUnit unit)
void
setParent(ThreadPoolExecutor tp)
java.lang.Runnable
take()
-
Methods inherited from class java.util.concurrent.LinkedBlockingQueue
clear, contains, drainTo, drainTo, forEach, iterator, offer, peek, poll, put, remainingCapacity, remove, removeAll, removeIf, retainAll, size, spliterator, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
-
-
Method Detail
-
setParent
public void setParent(ThreadPoolExecutor tp)
-
force
public boolean force(java.lang.Runnable o)
Used to add a task to the queue if the task has been rejected by the Executor.- Parameters:
o
- The task to add to the queue- Returns:
true
if the task was added to the queue, otherwisefalse
-
offer
public boolean offer(java.lang.Runnable o)
- Specified by:
offer
in interfacejava.util.concurrent.BlockingQueue<java.lang.Runnable>
- Specified by:
offer
in interfacejava.util.Queue<java.lang.Runnable>
- Overrides:
offer
in classjava.util.concurrent.LinkedBlockingQueue<java.lang.Runnable>
-
poll
public java.lang.Runnable poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
poll
in interfacejava.util.concurrent.BlockingQueue<java.lang.Runnable>
- Overrides:
poll
in classjava.util.concurrent.LinkedBlockingQueue<java.lang.Runnable>
- Throws:
java.lang.InterruptedException
-
take
public java.lang.Runnable take() throws java.lang.InterruptedException
- Specified by:
take
in interfacejava.util.concurrent.BlockingQueue<java.lang.Runnable>
- Overrides:
take
in classjava.util.concurrent.LinkedBlockingQueue<java.lang.Runnable>
- Throws:
java.lang.InterruptedException
-
-