--single-transaction This option sends a START TRANSACTION SQL statement to the server before dumping data. It is useful only with transactional tables such as InnoDB, because then it dumps the consistent state of the database at the time when BEGIN was issued without blocking any applications.
It's important to understand transactions first before being able to fully understand –single-transaction
START TRANSACTION statement creates a branch of the data. With this “branch” it then does a SELECT statement from this consistent data that no one else has the ability to write to. The main branch is still being written to but the data you have selected is not