As you have noticed a matrix of (N-1)*(N-1) SPSC queues
is needed to compose an MPMC queue , and strict FIFO order can be broken
in it, this is not good, this is why said also:
Other than the strict FIFO order that can be broken, here is another
problem with the distributed network of SPSC queues, here it is:
--
5. finally, SPSC may not be a good point for massive ITC(inter-thread
communication):.
Because the space complexity goes in O(N^2), N is the number of threads.
It is not rare to see a server with 1k or 2k hardware threads. And "many
core" is the final destination of CPU from current sight.
---
Read all the following webpage and the responses to it to understand: