Patent ID: 9619286
Date: 2017-04-11
CPC Classifications: G06F

Claim:
1. A method of processing requests comprising: selecting a first thread of a plurality of threads for execution at a first point in time, wherein only a single one of the plurality of threads is allowed to execute at a time and wherein each of the plurality of threads is associated with one of a plurality of queues of thread-specific requests to be processed by said each thread; selecting a first request from the one queue of requests associated with the first thread; performing first processing by the first thread to service the first request; determining, in accordance with one or more criteria, a service time classification for the first request, wherein said one or more criteria include a runtime determination of what one or more resources were used by said first processing in servicing the first request, wherein said determining the service time classification of the first request is performed after the first thread has completed servicing the first request and at runtime during execution of the first thread; determining, in accordance with the service time classification, whether to allow the first thread to continue execution and process a second request from the one queue of requests associated with the first thread; if it is determined in accordance with the service time classification to allow the first thread to continue execution, performing second processing by the first thread to service the second request, and otherwise, selecting a second of the plurality of threads for execution; determining a number of requests the first thread has processed since commencing execution at the first point in time; determining whether the number of requests exceeds a maximum number of requests; and if it is determined that the number of requests exceeds the maximum number of requests, selecting another one of the plurality of threads for execution rather than the first thread, and otherwise allowing the first thread to continue execution processing another request from the one queue of requests associated with the first thread.