This message is wrong, it reports one thread too many:
2016-04-03 12:37:54 Using 4 threads for script verification
The appropriate code is:
LogPrintf("Using %u threads for script verification\n", nScriptCheckThreads);
if (nScriptCheckThreads) {
for (int i=0; i<nScriptCheckThreads-1; i++)
threadGroup.create_thread(&ThreadScriptCheck);
}
Also -par directly sets nScriptCheckThreads,
nScriptCheckThreads = GetArg("-par", DEFAULT_SCRIPTCHECK_THREADS);
so this means the option help is also incorrect:
-par=<n>
Set the number of script verification threads
What is the desired, expected behavior here?
(or is the thread that dispatches the work to script threads also counted as a 'verification' thread? we probably should document this, then, I spent some time on a wild goose chase for a missing ghost thread in htop)