Creates mutiple thread processing queue.
If numThreads argument is zero, then the queue uses all available free threads.