We have a windows service which listen to single RabbitMQ queue and process the message.

We would like to extend same windows services so that it can listen to multiple queues of RabbitMQ and process the message. 

Not sure if that can be possible by using multi-threading as each thread will have to listening (blocking) the queue.

As I am very new to multi-threading, need high level guideline on following point, which will help me to start building the prototype.

1. Is it possible to listen multiple queues in single application by using threading?
2. How to handle the situation where if any single thread got shut
down (due to exception etc.), how to bring back without restarting the
whole windows services.
3. Any design pattern or open source implementation which can help me to handle this kind of situation.