Python-Threads, die alle auf einem einzelnen Kern ausgeführt werden

Habe ich ein Python-Programm, das laicht viele threads, läuft 4 zu einem Zeitpunkt, und jeder führt eine teure operation ist. Pseudocode:

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

Aber wenn das Programm ausgeführt wird, die Aktivitätsanzeige in OS X zeigt, dass 1 von den 4 logischen Kernen auf 100% und der andere bei fast 0. Ich kann natürlich nicht zwingen das OS nichts zu tun, aber ich hatte noch nie um die Aufmerksamkeit auf die performance in multi-threaded-code, wie dies vor so dass ich Frage mich, wenn ich mich gerade fehlt oder ein Missverständnis etwas.

Dank.

InformationsquelleAutor der Frage Rob Lourens | 2010-12-21

Schreibe einen Kommentar