站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > NetBeans API Javadoc 4.1.0

RequestProcessor (NetBeans APIs) - NetBeans API Javadoc 4.1.0


org.openide.util
Class RequestProcessor

java.lang.Object
  extended byorg.openide.util.RequestProcessor

public final class RequestProcessor
extends Object

Request processor that is capable to execute requests in dedicated threads. You can create your own instance or use the shared one.

There are several use cases for RequestProcessor:

Note: If you don't need to serialize your requests but you're generating them in bursts, you should use your private RequestProcessor instance with limited throughput (probably set to 1), the IDE would try to run all your requests in parallel otherwise.


Nested Class Summary
 class RequestProcessor.Task
          The task describing the request sent to the processor.
 
Constructor Summary
RequestProcessor()
          Creates new RequestProcessor with automatically assigned unique name.
RequestProcessor(String name)
          Creates a new named RequestProcessor with throughput 1.
RequestProcessor(String name, int throughput)
          Creates a new named RequestProcessor with defined throughput.
 
Method Summary
 RequestProcessor.Task create(Runnable run)
          Creates request that can be later started by setting its delay.
static RequestProcessor.Task createRequest(Runnable run)
          Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.
static RequestProcessor getDefault()
          The getter for the shared instance of the RequestProcessor.
 boolean isRequestProcessorThread()
          Tests if the current thread is request processor thread.
 RequestProcessor.Task post(Runnable run)
          This methods asks the request processor to start given runnable immediately.
 RequestProcessor.Task post(Runnable run, int timeToWait)
          This methods asks the request processor to start given runnable after timeToWait milliseconds.
 RequestProcessor.Task post(Runnable run, int timeToWait, int priority)
          This methods asks the request processor to start given runnable after timeToWait milliseconds.
static RequestProcessor.Task postRequest(Runnable run)
          Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.
static RequestProcessor.Task postRequest(Runnable run, int timeToWait)
          Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.
static RequestProcessor.Task postRequest(Runnable run, int timeToWait, int priority)
          Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.
 void stop()
          Stops processing of runnables processor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequestProcessor

public RequestProcessor()
Creates new RequestProcessor with automatically assigned unique name.


RequestProcessor

public RequestProcessor(String name)
Creates a new named RequestProcessor with throughput 1.

Parameters:
name - the name to use for the request processor thread

RequestProcessor

public RequestProcessor(String name,
                        int throughput)
Creates a new named RequestProcessor with defined throughput.

Parameters:
name - the name to use for the request processor thread
throughput - the maximal count of requests allowed to run in parallel
Since:
OpenAPI version 2.12
Method Detail

getDefault

public static RequestProcessor getDefault()
The getter for the shared instance of the RequestProcessor.

Returns:
an instance of RequestProcessor that is capable of performing "unlimited" (currently limited to 50, just for case of misuse) number of requests in parallel. This instance is shared by anybody who needs a way of performing sporadic or repeated asynchronous work.
Since:
OpenAPI version 2.12

post

public RequestProcessor.Task post(Runnable run)
This methods asks the request processor to start given runnable immediately. The default priority is Thread.MIN_PRIORITY.

Parameters:
run - class to run
Returns:
the task to control the request

post

public RequestProcessor.Task post(Runnable run,
                                  int timeToWait)
This methods asks the request processor to start given runnable after timeToWait milliseconds. The default priority is Thread.MIN_PRIORITY.

Parameters:
run - class to run
timeToWait - to wait before execution
Returns:
the task to control the request

post

public RequestProcessor.Task post(Runnable run,
                                  int timeToWait,
                                  int priority)
This methods asks the request processor to start given runnable after timeToWait milliseconds. Given priority is assigned to the request.

For request relaying please consider:

    post(run, timeToWait, Thread.currentThread().getPriority());
 

Parameters:
run - class to run
timeToWait - to wait before execution
priority - the priority from Thread.MIN_PRIORITY to Thread.MAX_PRIORITY
Returns:
the task to control the request

create

public RequestProcessor.Task create(Runnable run)
Creates request that can be later started by setting its delay. The request is not immediatelly put into the queue. It is planned after setting its delay by schedule method.

Parameters:
run - action to run in the process
Returns:
the task to control execution of given action

isRequestProcessorThread

public boolean isRequestProcessorThread()
Tests if the current thread is request processor thread. This method could be used to prevent the deadlocks using waitFinished method. Any two tasks created by request processor must not wait for themself.

Returns:
true if the current thread is request processor thread, otherwise false

stop

public void stop()
Stops processing of runnables processor. The currently running runnable is finished and no new is started.


postRequest

public static RequestProcessor.Task postRequest(Runnable run)
Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.

This methods asks the request processor to start given runnable after timeToWait milliseconds. The default priority is Thread.MIN_PRIORITY.

Parameters:
run - class to run
Returns:
the task to control the request

postRequest

public static RequestProcessor.Task postRequest(Runnable run,
                                                int timeToWait)
Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.

This methods asks the request processor to start given runnable after timeToWait milliseconds. The default priority is Thread.MIN_PRIORITY.

Parameters:
run - class to run
timeToWait - to wait before execution
Returns:
the task to control the request

postRequest

public static RequestProcessor.Task postRequest(Runnable run,
                                                int timeToWait,
                                                int priority)
Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.

This methods asks the request processor to start given runnable after timeToWait milliseconds. Given priority is assigned to the request.

Parameters:
run - class to run
timeToWait - to wait before execution
priority - the priority from Thread.MIN_PRIORITY to Thread.MAX_PRIORITY
Returns:
the task to control the request

createRequest

public static RequestProcessor.Task createRequest(Runnable run)
Deprecated. Sharing of one singlethreaded RequestProcessor among different users and posting even blocking requests is inherently deadlock-prone. See use cases.

Creates request that can be later started by setting its delay. The request is not immediatelly put into the queue. It is planned after setting its delay by setDelay method.

Parameters:
run - action to run in the process
Returns:
the task to control execution of given action


Built on May 4 2005.  |  Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.