My understanding of good multithreading in games was that we have a job system that runs on 1 thread to which jobs are scheduled and get assigned to worker threads.
That's also the technique used by all free to use engines as far as I know (unity, unreal, cry, etc.).
Until I watched an interview with Id Software lead engine programmer Billy Kahn in which he says “1 core was dedicated to do all the scheduling, now we don't do that anymore” https://youtu.be/9S5ABf53rDo?t=123
Can someone explain how that works?