Comment créer des threads
Résumons comment créer des multi-threads. Il existe quatre façons d'implémenter des multi-threads. Ensuite, nous parlerons en détail des méthodes de création. 🎜>
1. Héritez de la classe Thread, puis remplacez la méthode run() 2. Implémentez l'interface Runnable, puis remplacez la méthode run() 3. Implémentez l'interface appelable, puis remplacez l'appelRemarque : quelle que soit la méthode utilisée. pour créer un thread, utilisez toujours le start fourni par la classe Thread pour démarrer la méthode thread ().
1. Héritez de la classe Thread et remplacez la méthode d'exécution
class MyThread extends Thread { private String title; private int ticket = 20; public MyThread(String title) { this.title = title; } public void run() { //放每个线程的子任务 while (ticket > 0) { System.out.println("当前线程为"+title+",还剩下"+ticket--+"票"); } } } public class ThreadTest { public static void main(String[] args) { MyThread myThread1 = new MyThread("黄牛A"); MyThread myThread2 = new MyThread("黄牛B"); MyThread myThread3 = new MyThread("黄牛C"); myThread1.start(); myThread2.start(); myThread3.start(); } }
2. Implémentez l'interface Runnable et remplacez. la méthode run
class MyRunnable implements Runnable{ @Override public void run() { for(int i =0;i <10;i++){ System.out.println(Thread.currentThread().getName()+"、i="+i); } } } public class RunnableTest { public static void main(String[] args) { Runnable runnable =new MyRunnable(); //向上转型 new Thread(runnable,"线程A").start(); //设置线程名字 new Thread(runnable).start(); //没有设置线程名字,则是系统默认从 Thread-(0,1,2...) Thread thread1 = new Thread(runnable); thread1.setName("线程B"); //调用setName()设置名字 thread1.start(); } }
3. Implémentez l'interface Callable et remplacez la méthode callclass MyCallable implements Callable<String>{
private int ticket =20;
@Override
public String call() throws Exception {
while(ticket > 0){
System.out.println(Thread.currentThread().getName()+"还剩下"+ticket--+"票");
}
return "票卖完了,再见";
}
}
public class CallableTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
//产生Callable对象
MyCallable myCallable = new MyCallable();
//产生FutureTask对象
FutureTask futureTask = new FutureTask(myCallable);
Thread thread = new Thread(futureTask);
thread.start();
System.out.println(futureTask.get()); //接收Callable对象的返回值
}
}
3. Créez un transfert de fil Entrez l'objet FutureTask
4. La valeur de retour reçue de l'interface Callable est la méthode get() dans Future
Comparaison de trois. façons de créer des threads1 .L'héritage de la classe Thread a la limitation de l'héritage unique. Relativement parlant, l'implémentation de l'interface Runnable est plus flexible et la classe Thread elle-même implémente également l'interface Runnable pour aider le. vraie classe de thread
2. L'implémentation de l'interface Runnable peut mieux réaliser le partage de programme Concept
3 L'interface Callable est utilisée lorsqu'une valeur de retour est requise
S'il y a des choses évidentes. erreurs dans le contenu ci-dessus, veuillez le signaler, je vous en serais reconnaissant. Merci!
Pour plus de contenu connexe, veuillez visiter le site Web PHP chinois :
Tutoriel vidéo JAVACe 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!