Signatures are checked ahead of time in separate threads, and sufficient number of threads are default allocated.
Whenever you see block processing at 100%, then the bottleneck is the single-core speed of your system (it's processing operations and updating state).