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