A Channel object is not thread-safe. In order to use it from multiple threads you must synchronize access to the Channel (e.g., use a mutex so that only 1 thread is accessing the Channel object at a time).
Depending on your use-case you may be able to get away with Channel (e.g., if you expect all threads to publish relatively few messages, and would have low contention when using the Channel), or you may be better off with a Channel per thread if you expect all threads to be publishing a lot of message concurrently.
-Alan