## org.gjt.sp.util
Class ThreadUtilities

    java.lang.Object
      org.gjt.sp.util.ThreadUtilities

    public class ThreadUtilities

extends java.lang.Object

The threadpool of jEdit. It uses a ExecutorService from the java.util.concurrent package. You can run `Task` or `Runnable` in it, Runnables will be encapsulated in Task.

Since:
  jEdit 4.4pre1

Method Summary
`static void` `runInBackground(java.lang.Runnable runnable)` Run the runnable in the threadpool.
`static void` `runInBackground(Task task)` Run the task in the threadpool.
`static void` `runInDispatchThread(java.lang.Runnable runnable)` Run the runnable in EventDispatch Thread.
`static void` `runInDispatchThreadAndWait(java.lang.Runnable runnable)` Runs the runnable in EDT through `invokeLater`, but returns only after the runnable is executed.
`static void` `runInDispatchThreadNow(java.lang.Runnable runnable)` Runs the runnable in EDT through `invokeAndWait`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### runInDispatchThread

    public static void runInDispatchThread(java.lang.Runnable runnable)

  Run the runnable in EventDispatch Thread. If the current thread is EventDispatch, it will run immediately otherwise it will be queued in the DispatchThread The difference with VFSManager.runInAWTThread() method is that this one will not wait for IO Request before being executed

  Parameters:
    `runnable` - the runnable to run

### runInDispatchThreadAndWait

    public static void runInDispatchThreadAndWait(java.lang.Runnable runnable)

  Runs the runnable in EDT through `invokeLater`, but returns only after the runnable is executed. This method is uninterruptible.

  Note the difference from `invokeAndWait`. If current thread is not EDT and there are runnables queued in EDT:

  - this method runs the runnable after them
  - `invokeAndWait` runs the runnable before them

### runInDispatchThreadNow

    public static void runInDispatchThreadNow(java.lang.Runnable runnable)

  Runs the runnable in EDT through `invokeAndWait`. Even if the thread gets interrupted, the call does not return until the runnable finishes (uninterruptible method).

  This method uses `EventQueue.invokeAndWait`, so the following remark applies:

  If you use invokeAndWait(), make sure that the thread that calls invokeAndWait() does not hold any locks that other threads might need while the call is occurring. From the article: Threads and Swing

### runInBackground

    public static void runInBackground(java.lang.Runnable runnable)

  Run the runnable in the threadpool. The runnable will be encapsulated in a `Task`

  Parameters:
    `runnable` - the runnable to run
  See Also:
    `runInBackground(Task)`

### runInBackground

    public static void runInBackground(Task task)

  Run the task in the threadpool. The runnable will be encapsulated in a `Task`

  Parameters:
    `task` - the task to run