Patent ID: 8176494

Claim:
A computer program product in a tangible computer readable medium having instructions for use in a data processing system for processing data in a multithreaded application, the computer program product comprising instructions for: placing work items into a data structure that is maintained in the data processing system, wherein the work items are pending processing by the multithreaded application; processing work items from the data structure by a plurality of threads within the multithreaded application in accordance with a first algorithm; processing work items from the data structure by a thread within the multithreaded application in accordance with a second algorithm that differs from the first algorithm, wherein the thread is configured distinctly from the plurality of threads; and restricting the processing of work items by the thread in accordance with a second set of parameters used to evaluate workflow conditions, wherein restricting the processing of work items by the thread in accordance with a second set of parameters further comprises: evaluating workflow conditions of the plurality of threads for a characteristic of a workflow condition as controlled by the second set of parameters; processing or not processing work items by the thread, respectively, in response to a determination of whether or not the workflow conditions of the plurality of threads has a characteristic indicated by the second set of parameters; reevaluating workflow conditions of the plurality of threads for a characteristic of a workflow condition as controlled by the second set of parameters in response to processing a work item by the thread; processing or not processing work items by the thread, respectively, in response to a determination of whether or not the workflow conditions of the plurality of threads has a characteristic indicated by the second set of parameters; and adjusting one or more parameters in the second set of parameters in accordance with a third set of parameters used to regulate a time period associated with processing the work items by the thread in response to a determination that workflow conditions do not have a characteristic indicated by the second set of parameters.