This is a MicroArchitecture pattern.
Instead of many processes accessing a single queue, each process has its own output queue. Consumers address these queues individually.
By removing shared elements, synchronization constraints/boundaries may be avoided.
The MultiQueue can be efficiently aggregated from BetterQueue elements. Sharing may become an issue again if multiple consumers can collide on the same queue. Consumers may arbitrate or LockAdapter s may be used.
--- RichardHenderson.
Maybe I should patent this. Though I guess it has already been patented, seeing as it is obvious ;).