title: Is it possible to use Go's buffered channel as a thread-safe queue?
body: <p>I want to find a queue structure (a data container) whose elements must be first-in-first-out. It is important for me that the structure must be thread-safe. I'm going to use this data container as something like a task or connection pool.</p>
  
  <p>I know a buffered channel is thread-safe, but I wonder if it works as FIFO, especially in a concurrent situation.</p>
  
  <p>And if it is possible to use buffered channel as a thread-safe  queue, do I need to worry about its efficiency?</p>