Was ist der beste Weg, Multithreading in Java zu implementieren?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Was ist der beste Weg, Multithreading in Java zu implementieren?

by Anonymous » 17 Jan 2025, 08:34

Ich habe mehrere YouTube-Demos und Tutorials zur Implementierung von Multithread-Operationen in Java verfolgt. Alle Tutorials zeigen jedoch das folgende Verfahren:

Code: Select all

class Task implements Runnable {
@Override
public void run() {
doTask();
}

public void doTask() {
for (int i = 0; i < 1500; i++) {
System.out.print('T');
}
}
}

public class Main {

public static void main(String[] args) {
Task t = new Task();

Thread thread = new Thread(t);
thread.start();

for (int i = 0; i < 1500; i++) {
System.out.print('M');
}
}
}
Einige Demos erweitern die Thread-Klasse anstelle von Runnable, folgen jedoch einem ähnlichen Konzept.
Ein Problem, das ich vermute, ist jedoch das „Was wäre wenn“. Ich möchte mehrere Logiken in einer Klasse haben, die ich gleichzeitig ausführen möchte, und dann habe ich ein Problem. Nun ja, Java-Veteranen kennen vielleicht einen Trick dafür. Ich habe jedoch versucht, eine solche Logik auf andere Weise umzusetzen. Hier ist der Code, den ich geschrieben habe:

Code: Select all

class Task {
public void doTask() {
for (int i = 0; i < 1500; i++) {
System.out.print('T');
}
}
}

public class Main {

public static void main(String[] args) {
Task t = new Task();

Thread thread = new Thread(new Runnable() {
@Override
public void run() {
t.doTask();
}
});
thread.start();

for (int i = 0; i < 1500; i++) {
System.out.print('M');
}
}
}
Jetzt kann ich mehrere Threads starten und die bestimmte Methode aufrufen, die ich gleichzeitig ausführen möchte.
Jetzt möchte ich wissen, ob es einen Vorteil gibt Möglichkeit, einen Multithread-Betrieb mit dem ersten Ansatz zu implementieren, und gibt es irgendwelche Mängel beim letzteren?

Top