У меня есть программа 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. Очевидно, я не могу заставить ОС ничего делать, но я никогда не приходилось обращать внимание на производительность в многопоточном коде, как это раньше, поэтому мне было интересно, если я просто упустил или что-то не понял.
Спасибо.