By using this site, you agree to our Privacy Policy and our Terms of Use. Close

@NJ5

Right. For the most part the only way to get linear benefit is when you can find independent tasks that do not need to operate on shared data. Even then multiple threads would still have to contend for multiple shared resources like disk drives, network interfaces, RAM etc...

Also the code responsible for scheduling execution of threads to idle cores can get bogged down like an overworked traffic cop. The more cores the more work for the thread scheduler, the more behind it gets, the more cycles get consumed.