title: design pattern(s) or best practice for image acquisition and image processing in real time application
body: <p>First, by "real-time", image processing of an image should take 0.1 second or less in this application.</p>
  
  <p>In our application, three threads in addition to main thread are running. One for image acquisition, second for image processing, third for robot. Between the two threads, there is an image queue to share so while camera en-queues images and robot de-queues the processed images, imaging processor de-queues images and enqueues processed images. One restriction you might've noticed is that processed images should be in sequence meaning keeping the same order of images as in image acquisition.</p>
  
  <p>Is there any design pattern or best practice to be applied for this architecture.</p>