I did some tests on my machine, and this is what I got (I did not go through the docs so I could be wrong):
1. I noticed that the number of consumers is the number of “listeners” that you will attach to your queue (they can receive a message, but delegate processing to workflows). The number of threads is the number of workers who will process the message.
Test 1: With 1 thread, 10 consumers, and 10 messages, you will have 10 messages delivered at the same time (but not suspended), with 1 being processed by one worker thread.
Test 2: With 10 threads, 1 consumer and 10 messages, you will also process 1 message at a time, but while the message is being processed, the rest are available in the queue (only 1 is delivered at a time), so if another listener joins, it will be able to process the remaining messages ( not in the first example).
2. I think that the threads are separated, because if this is not so, in Test 1 10 messages will be consumed in parallel (1 thread for each consumer, only 10 threads, not just one), which is not what happened.
Hope this helps!
source share