java - 为什么只能用单核cpu的软件并不是将一个cpu线程独占,而是每个线程平均占用?
怪我咯
怪我咯 2017-04-18 09:52:36
0
3
898

比如说,我cpu有四个线程,那么运行一个只能利用单线程的软件为什么不是这个进程把第一个核心的所有资源占用,而是每个线程占用百分之25?

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(3)
黄舟

Ce que vous voulez peut être réalisé. Il existe différentes API qui peuvent être appelées sur différents systèmes d'exploitation. Sous Linux, sched_setaffinity est appelé. Sous Windows, SetProcessAffinityMask peut être utilisé pour lier un thread spécifique à exécuter sur un spécifique. fonctionner sur le cœur du processeur. Bien sûr, ce que vous avez dit, c'est qu'un thread occupe entièrement tout le fonctionnement d'un processeur. Cela ne peut pas être réalisé en mode utilisateur. Le système d'exploitation actuel planifie l'exécution du programme, mais vous devez le planifier activement. vous-même. Sinon, la machine entière apparaîtra en animation suspendue, et la machine ne répondra pas, mais c'est en fait une boucle infinie.

小葫芦

Les systèmes d'exploitation modernes utilisent un mécanisme multi-thread préemptif pour faire fonctionner le processeur. Lors de l'obtention du contrôle du processeur, une tranche de temps est obtenue et, une fois la tranche de temps terminée, le contrôle est transféré à d'autres threads.

Peter_Zhu

Home PC est un système de partage de temps, qui utilise la rotation des tranches de temps pour allouer uniformément les ressources. Que dois-je faire si un seul thread monopolise tout le cœur du processeur et que le thread boucle sans fin

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal