[rabbitmq-discuss] Multi-threading in c/c++
Eric J. Holtman
eric at holtmans.com
Thu Feb 16 12:13:53 GMT 2012
I've been hoping to get rabbitmq integrated into some
of my applications. I've read a few books and web
articles. I've wrangled the source into compiling and
working under Windows. The examples run fine.
I'm trying to figure out how to run under a multithreaded
environment. As I understood it, the whole point of having
a multiplexed connection was so that I didn't have to
burn an actual TCP connection for every channel.
However, that doesn't seem to be how rabbitmq-c is
In fact, a recent question from the archives, answered
by Alan says:
> You have interpreted the documentation correctly:
> amqp_connection_state_t, its socket, and all associated amqp_channel_t's
> must not be shared between threads. Its ok to have separate instances of
> these objects used in different threads.
So, if I want to consume on 4 queues, and the natural
solution would be to have 4 threads doing a blocking
wait (like "run" in the amqp_consumer example), I have
to have a separate TCP connection for each one?
Also, I assume if I'm going to use a c++ wrapper like
amqpcpp or rabbitcpp I'm going to have the same issue,
since they're using rabbitmq-c as the lower layer?
More information about the rabbitmq-discuss