Interesting question. I had to dig into the code to remind myself. When that article was written, the TaskRunner (then called indexer) had only one task: updating the search index. Over the years more tasks were added.
The actual page indexing is still locked and restricted to one task at a time. (see \dokuwiki\Indexer::lock()
.
The task runner itself is not limited. Each page opening (that triggers image loading, so some but not all search engine spiders) will trigger one call to the task runner.
One call to the task runner will only run one task (stopping at the task returning true). See \dokuwiki\TaskRunner::run()
.
So what you're seeing isn't unusual per se. The question is what are those runners doing, what is taking them so long and why the need for that much CPU and RAM? Maybe run a couple manually with debugging enabled to see if they hang somewhere?