org.scijava.thread
Interface ThreadService

All Superinterfaces:
Comparable<Prioritized>, Contextual, Disposable, HasPluginInfo, Prioritized, RichPlugin, SciJavaPlugin, SciJavaService, Service, ThreadFactory
All Known Implementing Classes:
DefaultThreadService

public interface ThreadService
extends SciJavaService, ThreadFactory

Interface for the thread handling service.

Author:
Curtis Rueden

Method Summary
 void invoke(Runnable code)
          Executes the given code in a special dispatch thread, blocking until execution is complete.
 boolean isDispatchThread()
          Gets whether the current thread is a dispatch thread for use with invoke(java.lang.Runnable) and queue(java.lang.Runnable).
 void queue(Runnable code)
          Queues the given code for later execution in a special dispatch thread.
<V> Future<V>
run(Callable<V> code)
          Asynchronously executes the given code in a new thread, as decided by the thread service.
 Future<?> run(Runnable code)
          Asynchronously executes the given code in a new thread, as decided by the thread service.
 
Methods inherited from interface org.scijava.service.Service
initialize, registerEventHandlers
 
Methods inherited from interface org.scijava.Contextual
context, getContext, setContext
 
Methods inherited from interface org.scijava.Prioritized
getPriority, setPriority
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface org.scijava.plugin.HasPluginInfo
getInfo, setInfo
 
Methods inherited from interface org.scijava.Disposable
dispose
 
Methods inherited from interface java.util.concurrent.ThreadFactory
newThread
 

Method Detail

run

<V> Future<V> run(Callable<V> code)
Asynchronously executes the given code in a new thread, as decided by the thread service. Typically this means that the service allocates a thread from its pool, but ultimately the behavior is implementation-dependent. This method returns immediately.

Parameters:
code - The code to execute.
Returns:
A Future that will contain the result once the execution has finished. Call Future.get() to access to the return value (which will block until execution has completed).

run

Future<?> run(Runnable code)
Asynchronously executes the given code in a new thread, as decided by the thread service. Typically this means that the service allocates a thread from its pool, but ultimately the behavior is implementation-dependent. This method returns immediately.

Parameters:
code - The code to execute.
Returns:
A Future that can be used to block until the execution has finished. Call Future.get() to do so.

isDispatchThread

boolean isDispatchThread()
Gets whether the current thread is a dispatch thread for use with invoke(java.lang.Runnable) and queue(java.lang.Runnable).

In the case of AWT-based applications (e.g., Java on the desktop), this is typically the AWT Event Dispatch Thread (EDT). However, ultimately the behavior is implementation-dependent.

Returns:
True iff the current thread is considered a dispatch thread.

invoke

void invoke(Runnable code)
            throws InterruptedException,
                   InvocationTargetException
Executes the given code in a special dispatch thread, blocking until execution is complete.

In the case of AWT-based applications (e.g., Java on the desktop), this is typically the AWT Event Dispatch Thread (EDT). However, ultimately the behavior is implementation-dependent.

Parameters:
code - The code to execute.
Throws:
InterruptedException - If the code execution is interrupted.
InvocationTargetException - If an uncaught exception occurs in the code during execution.

queue

void queue(Runnable code)
Queues the given code for later execution in a special dispatch thread.

In the case of AWT-based applications (e.g., Java on the desktop), this is typically the AWT Event Dispatch Thread (EDT). However, ultimately the behavior is implementation-dependent.

Parameters:
code - The code to execute.


Copyright © 2009–2014 SciJava. All rights reserved.