title: Why does ZeroMQ recommend creating one Context for an application?
body: <p>I've read the part of the guide that recommends creating one Context. My previous implementation of my application had multiple contexts that I created ad-hoc to get a subscription running. I've since changed it to using a single context for all subscriptions.</p>
  <p>What are the drawbacks of creating multiple contexts and what use cases are there for doing so? The guide has this following blurb:</p>
  <blockquote>
  <p><em><strong>Getting the Context Right</strong></em><br><br>
  <em><sub>ZeroMQ applications always start by creating a context, and then using that for creating sockets. In C, it’s the <code>zmq_ctx_new()</code> call. You should create and use exactly one context in your process. Technically, the context is the container for all sockets in a single process, and acts as the transport for <code>inproc</code> sockets, which are the fastest way to connect threads in one process. If at runtime a process has two contexts, these are like separate ZeroMQ instances. If that’s explicitly what you want, OK, but otherwise remember</sub></em></p>
  </blockquote>
  <p>Does this mean that it's just not as efficient to use multiple contexts, but it would still work?</p>