Wie ein anderer Benutzer kommentierte, ist er meistens vom Betriebssystem abhängig.
Wenn eine CPU über 2 logische Kerne verfügt, können zwei Programme gleichzeitig ausgeführt werden. Ja, ja?
Gleichzeitig ja, parallel nein. Siehe: https://softwareengineering.stackexchange.com/questions/190719/the-difference- zwischen-koncurrent-und-parallel-execution
Angenommen, ich habe 100 Prozesse auf zwei Kernen ausgeführt. Wird das Betriebssystem versuchen, 50 für jeden Lastkern aufzuteilen, um die Lastverteilung zu gewährleisten? Werden sie zufällig verstreut sein?
Jedes Betriebssystem verfügt über einen eigenen Zeitplanungsalgorithmus.
Angenommen, ich starte mspaint.exe auf einem Quad-Core-Intel-Chip ... von wo aus wird es ausgeführt (Core 1, 2, 3, 4?), Und wird es dort bis zum Schließen weiter ausgeführt?
Wir wissen nicht, wo es ausgeführt wird, und es wird höchstwahrscheinlich nicht von Anfang bis Ende auf demselben Kern ausgeführt. Auch hier hängt der OS-Scheduler ab.
Ist es wirklich möglich, einen bestimmten Kern oder ein Programm für Multi-Cores direkt zu wählen, ohne dass ein transparenter Daemon oder das Betriebssystem dies zufällig für Sie tun muss?
Anscheinend ja: https://stackoverflow.com/questions/663958/how-to-control-which-core-a-process-runs-on
Wenn ja, wenn alle Leute sagen, "nur Threads verwenden"? Werden Multi-Threads Kernen zugeordnet? Wenn ja, wie kann ein Thread ohne Betriebssystemeingriff auf einen Core zugeschnitten werden, wenn Threads auf einem Single-Core nicht gleichzeitig funktionieren?
Ich habe die Frage hier nicht verstanden, aber die Grundidee bei Threads ist, dass Sie sie erstellen und das Betriebssystem mit seinem Scheduling-Algorithmus ausgeführt wird. Sie müssen nicht kontrollieren, in welchem logischen oder physischen Kern es ausgeführt wird (es kann Fälle geben.) Vielleicht möchten Sie das tun, ich weiß nicht warum.