Do multiple threads within a process share the same address space in Linux? Why do we say that Linux doesn't distinguish between a process and a thread? What is the best queuing system to process transactional data in order using multiple producers (threads) and multiple consumers (threads)?