code: def put(self, x):
          
          if self._num_serial > 0 or len(self._threads) == 0:
              self._num_serial -= 1
              out = self._parallizable.forward_backward(x)
              self._out_queue.put(out)
          else:
              self._in_queue.put(x)
docs: Assign input `x` to an available worker and invoke
          `parallizable.forward_backward` with x.