There is one thread for each flavor of RCU, which means three on CONFIG_PREEMPT=y kernels (rcu_bh, rcu_preempt, and rcu_sched) and two on CONFIG_PREEMPT=n kernels (rcu_bh and rcu_sched, with rcu_preempt mapping onto rcu_sched).
In theory, a single thread could handle all the RCU flavors, but when I tried this the code got quite ugly.