Dans l'article précédent, j'ai introduit la méthode de mise en œuvre de Java Multi-Threading.
Tout d'abord, permettez-moi de vous dire les avantages et les inconvénients du multi-threading
Avantages du multithreading:
1) Une meilleure utilisation des ressources
2) La programmation est plus simple dans certains cas
3) Le programme répond plus rapidement
Le coût du multithreading:
1) Design plus complexe
Bien que certaines applications multithread soient plus simples que les applications à thread unique, d'autres sont généralement plus complexes. Cette partie du code nécessite une attention particulière lors de l'accès à des données partagées via plusieurs threads. L'interaction entre les fils est souvent très complexe. Les erreurs générées par une synchronisation de thread incorrecte sont très difficiles à détecter et à reproduire pour corriger.
2) frais généraux de commutation de contexte
Lorsque le CPU passe de l'exécution d'un thread à l'exécution d'un autre thread, il doit d'abord stocker les données locales du thread actuel, des pointeurs du programme, etc., puis charger les données locales d'un autre thread, des pointeurs de programme, etc., et enfin commencer exécution. Cette commutation est appelée "commutateur de contexte". Le CPU exécute un thread dans un contexte, puis passe à un autre contexte pour exécuter un autre thread. La commutation de contexte n'est pas bon marché. Si ce n'est pas nécessaire, la commutation de contexte doit être réduite.
Il existe deux technologies clés pour définir et démarrer les fils:
Premièrement: la classe Thread doit implémenter l'interface java.lang.runnable ou hériter de la classe java.lang.thread, et les deux doivent implémenter la méthode d'exécution, où la méthode d'exécution n'a pas d'entrée, pas de sortie et aucune exception.
Deuxièmement: appelez la méthode de démarrage de la classe de threads pour démarrer le thread.
Test de package; Importer java.util.vector; import java.util.date; / ** * instance de test de thread * @author qui coule toujours * * / classe publique ThreadNew {/ ** * * @author Toujours l'écoulement de l'eau * * / class Threada étend Thread {private date runtime; public void run () {System.out.println ("threada begin."); )); DATE (); * * / public void startB () {runnable threadb = new ThreadB (); [] args) {threadNew test = new ThreadNew ();