TP Reactor는 Select Reactor를 특화한 디스패쳐입니다. select라는 디멀티플렉싱 명령어는 쓰레드에 안정적이지 않습니다. 따라서 여러 쓰레드에서 select 함수 동시 호출을 제한해야 합니다. 이러한 이유로 select 함수 호출이 가능한 쓰레드를 Leader 쓰레드, 다음에 호출하기 위해 기달리는 쓰레드를 follower 쓰레드라고 명명합니다.
기존 Select Reactor 디스패쳐의 단점은 이벤트를 디스패칭하는 동안에는 디멀티플렉싱이 불가능합니다. 그에 비해서 TP Reactor는 디스패칭하는 동안 기달리던 follower 쓰레드들 중에 하나가 새로운 Leader 쓰레드가 됩니다. 따라서 적절한 쓰레드 풀 갯수만 조절하면 효율적으로 디스패칭이 가능합니다.
TP Reactor의 장점은 이벤트 핸들어가 별도의 쓰레드에 대한 동기화처리를 할 필요가 없습니다. 기존 Task 기반 쓰레드풀(대표적으로 WMFO Reactor)에 비해서 동기화 처리에 대한 추가적인 비용이 발생하지 않습니다.
TP Reactor는 쓰레드 스케쥴링에 대한 정책은 없습니다.