Все потоки Python выполняются на одном ядре

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

Спасибо.

56
задан Rob Lourens 21 December 2010 в 06:09
поделиться