Les méthodes de planification des threads Java sont les suivantes : 1. La planification collaborative des threads. Les systèmes multithread adoptent la planification collaborative et le temps d'exécution du thread est contrôlé par le thread lui-même. 2. Planification préemptive des threads En utilisant un système de planification multi-thread préemptive, le temps d'exécution de chaque thread sera alloué par le système.
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Java 10, ordinateur DELL G3.
1. Planification coopérative des threads
Le système multithread adopte une planification coopérative.Le temps d'exécution du thread est contrôlé par le thread lui-même, une fois que le thread a terminé son travail, il informe activement le système de passer à un autre thread. L'avantage du multithreading coopératif est qu'il est simple à mettre en œuvre, car le thread changera de thread après avoir terminé son propre travail. L'opération de changement est connue du thread lui-même, il n'y a donc généralement pas de problème de synchronisation des threads. Ses défauts sont également évidents : le temps d'exécution du thread ne peut pas être contrôlé, et si le code d'un thread est mal écrit et que le système n'est pas autorisé à changer de thread, le programme se bloquera toujours.
2. Planification préemptive des threads
En utilisant un système multi-thread de planification préemptive, le temps d'exécution de chaque thread sera alloué par le système et le changement de thread n'est pas déterminé par le processus lui-même. Par exemple, en Java, il existe une méthode Thread::yield() qui peut activement abandonner le temps d'exécution, mais si vous souhaitez obtenir activement le temps d'exécution, le thread lui-même n'a aucun moyen. De cette façon, la planification des threads est implémentée et le temps d'exécution du thread est contrôlé par le système. Il n'y a aucun problème qu'un thread provoque le blocage de l'ensemble du processus ou même du système dans son ensemble.
Voici les deux méthodes de planification des threads Java. J'espère qu'elles pourront être utiles à tout le monde.