Pour exécuter le traitement Thread, créez une instance de la classe Thread et appelez sa méthode start. Ensuite, je voudrais écrire le contenu de traitement, mais si vous écrivez une classe qui implémente une interface appelée Runnable et la transmettez à "new Thread ();" OK
java
class MyRunnable implements Runnable {
public void run(){
for (int i=0; i < 500; i++){
System.out.print('*');
}
}
}
public class Test {
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();
for (int i=0; i < 500; i++){
System.out.print('.');
}
}
}
C'est plein de variables locales, donc je vais l'omettre.
java
class MyRunnable implements Runnable {
public void run(){
for (int i=0; i < 500; i++){
System.out.print('*');
}
}
}
public class Test {
public static void main(String[] args) {
new Thread(new MyRunnable()).start();
for (int i=0; i < 500; i++){
System.out.print('.');
}
}
}
Utilisez une classe anonyme pour combiner les deux en un seul.
java
public class Test {
public static void main(String[] args) {
new Thread(new Runnable() {
public void run(){
for (int i=0; i < 500; i++){
System.out.print('*');
}
}
}).start();
for (int i=0; i < 500; i++){
System.out.print('.');
}
}
}
Une interface qui n'a qu'une seule méthode abstraite est appelée "interface fonctionnelle" dans le sens où une seule sortie est définie pour chaque entrée. À partir de la version 8 de Java, les interfaces fonctionnelles peuvent être remplacées par une notation spéciale appelée expressions lambda.
Remplacer par une expression lambda
java
public class Test {
public static void main(String[] args) {
new Thread(() -> {
for (int i=0; i < 500; i++){
System.out.print('*');
}
}).start();
for (int i=0; i < 500; i++){
System.out.print('.');
}
}
}