code: protected ThreadBase<E> getReadingThread(ExceptionHandler<IOException> exceptionHandler,
  			MutableObjectIterator<E> reader, CircularQueues<E> queues, AbstractInvokable parentTask,
  			TypeSerializer<E> serializer, long startSpillingBytes)
  	{
  		return new ReadingThread<E>(exceptionHandler, reader, queues, serializer.createInstance(),
  			parentTask, startSpillingBytes);
  	}
docs: Creates the reading thread. The reading thread simply reads the data off the input and puts it
  into the buffer where it will be sorted.
  <p>
  The returned thread is not yet started.
  
  @param exceptionHandler
  The handler for exceptions in the thread.
  @param reader
  The reader from which the thread reads.
  @param queues
  The queues through which the thread communicates with the other threads.
  @param parentTask
  The task at which the thread registers itself (for profiling purposes).
  @param serializer
  The serializer used to serialize records.
  @param startSpillingBytes
  The number of bytes after which the reader thread will send the notification to
  start the spilling.
  
  @return The thread that reads data from an input, writes it into sort buffers and puts
  them into a queue.