У меня есть программа Python, которая порождает много потоков, запускается по 4 за раз, и каждый из них выполняет дорогостоящие операция. Псевдокод:
for object in list:
t = Thread(target=process, args=(object))
# if fewer than 4 threads are currently running, t.start(). Otherwise, add t to queue
Но когда программа запущена, Activity Monitor в OS X показывает, что 1 из 4 логических ядер находится на 100%, а другие - почти на 0. Очевидно, я не могу заставить ОС делать что-либо, кроме как я Мне никогда раньше не приходилось обращать внимание на производительность в многопоточном коде, поэтому мне было интересно, не упускаю ли я чего-то или неправильно понимаю.
Спасибо.