The Apply coordinator spawns multiple apply threads (as many as possible. The exact number of threads will be equal to number of parallel threads that are updating the source table.) to improve performance. In the case of RAC and the TNS connection of dbvrep is RAC-aware, apply will even spread the loads across the RAC nodes. Each Apply process will apply its changes until the next commit (or rollback) point and then wait for the other Apply processes to also reach this point, before continuing on. This ensures data integrity and that data is inserted in the correct sequence. Each Apply process has its own connection to the database. If the target database is Oracle, then this will be an OCI connection.
When there is a conflict, all the Apply processes will pause, except for the Apply process with the conflict. Apply will in effect become a serial process. When the conflict is resolved, then the other Apply processes will be resumed and the applying of changes will continue in a parallel process.
The value that turns parallel Apply processing on or off is _THREADED_OCI. Setting this to YES is the default and means parallel Apply processing is turned on.