title: Will a BlockingQueue look the same to all threads at all times?
body: <p>I'm implementing a program where the main thread pushes various messages to worker threads, and worker threads push results of work back to the main thread.</p>
  
  <p>For that I planned to use two queues, one to push to the worker thread, and one to pull from it.</p>
  
  <p>As far as I understand, threads cache objects and thus if they were to <code>add()</code> an object to a queue that another thread could <code>poll()</code>, this change might not be visible immediately, i.e. it might not be synchronized. Is this correct?</p>
  
  <p>However, if I were to use a <code>BlockingQueue</code>, all operations on this queue are supposed to be immediately visible to all threads?</p>