title: How to make a Java thread wait for another thread's output?
body: <p>I'm making a Java application with an application-logic-thread and a database-access-thread.
  Both of them persist for the entire lifetime of the application and both need to be running at the same time (one talks to the server, one talks to the user; when the app is fully started, I need <em>both</em> of them to work).</p>
  
  <p>However, on startup, I need to make sure that initially the app thread waits until the db thread is ready (currently determined by polling a custom method <code>dbthread.isReady()</code>).
  I wouldn't mind if app thread blocks until the db thread was ready.</p>
  
  <p><code>Thread.join()</code> doesn't look like a solution - the db thread only exits at app shutdown.</p>
  
  <p><code>while (!dbthread.isReady()) {}</code> kind of works, but the empty loop consumes a lot of processor cycles.</p>
  
  <p>Any other ideas? Thanks.</p>