code: public synchronized T get ()
      {
          while (_count == 0) {
              try { wait(); } catch (InterruptedException e) {}
          }
  
          // pull the object off, and clear our reference to it
          T retval = _items[_start];
          _items[_start] = null;
  
          _start = (_start + 1) % _size;
          _count--;
  
          // if we are only filling 1/8th of the space, shrink by half
          if ((_size > MIN_SHRINK_SIZE) && (_size > _suggestedSize) &&
              (_count < (_size >> 3))) shrink();
  
          return retval;
      }
docs: Gets the next item from the queue, blocking until an item is added
  to the queue if the queue is empty at time of invocation.