Exigences : Nous souhaitons implémenter un programme multithread
(tutoriel recommandé : cours java)
Comment mettre en œuvre :
Puisque les threads dépendent des processus, nous devons d'abord créer un processus
Le processus est créé par le système, nous devons donc appeler la fonction système pour créer un processus
Cependant, Java ne peut pas appeler directement les fonctions système, nous ne pouvons donc pas implémenter directement des programmes multithread
Cependant, Java peut appeler directement des programmes écrits en C/C++ pour implémenter des programmes multithread <.>
C/C++ appelle des fonctions système pour créer des processus, puis Java appelle des choses comme celle-ci et fournit ensuite quelques classes que nous pouvons utiliser. On peut implémenter le multi-threadingAlors quelles sont les classes fournies par Java ? ThreadEn regardant l'API, nous savons qu'il existe deux façons d'implémenter le multi-threading Méthode 1 : hériter de la classe Thread Étapes :A : La classe personnalisée MyThread hérite de la classe Thread B : La méthode run() est remplacée dans la classe MyThread Pourquoi la méthode run() ; ? Tous les codes d'un type n'ont pas besoin d'être exécutés par des threadsÀ l'heure actuelle, afin de distinguer les codes qui peuvent être exécutés par plusieurs threads, Java fournit la méthode run() dans la classe ThreadUtilisée pour inclure le code exécuté par le threadC : Créer un objetD : Démarrer le threadExemple :
package cn.itcast_01; public class 如何实现多线程及其多线程方式1的思路 { public static void main(String[] args) { // 创建线程对象 MyThread my = new MyThread(); //启动线程 my.run(); my.run(); //调用run();方法为什么是单线程呢? //因为run();方法的直接调用其实就相当于普通方法调用,所有你看到的是单线程的效果 //想要看到多线程的效果,就必须说另一个方法:start() //面试题run()和start()的区别 //run():仅仅是封装被线程执行的代码,直接调用依旧是普通方法 //start():首先启动了线程,然后再由JVM去调用该线程的run()方法 MyThread my = new MyThread(); my.start(); my.start();//IllegalThreadStateException:非法的线程状态异常 //为什么呢? //因为这是相当于my线程别调用了两次。而不是两个线程的启动 //创建两个线程 MyThread my1 = new MyThread(); MyThread my2 = new MyThread(); my1.start(); my2.start(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!