Java Threads Tutorial: So verbesserst du dein Programm mit Multithreading!

Java Threads Tutorial: So verbesserst du dein Programm mit Multithreading!

Jonas Keil

2 года назад

15,781 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@kent937
@kent937 - 28.10.2023 13:36

Was genau macht der Try catch Block?

Ответить
@yoriiroy1720
@yoriiroy1720 - 23.10.2023 21:21

Macht richtig Spaß zuzuschauen!

Ответить
@kavoos1000
@kavoos1000 - 01.08.2023 22:29

Danke dir, sehr schön und einfach erklärt

Ответить
@piarina
@piarina - 19.06.2023 11:22

Danke für das Video! :)

Hier meine Lösung:

public class Main {
public static void main(String[] args) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 10; i += 2) {
System.out.println(i);
try { Thread.sleep(1000); }
catch (InterruptedException e) {
e.printStackTrace();
}
}

}
});

Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 1; i < 10; i += 2) {
try { Thread.sleep(500); }
catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
try { Thread.sleep(500); }
catch (InterruptedException e) {
e.printStackTrace();
}
}

}
});

thread1.start();
thread2.start();
}
}

Ответить
@davidta584
@davidta584 - 13.06.2023 16:02

Vielen Dank für deine Videos . Sehr hilfreich und verständlich erklärt, auch für etwas in die Jahre gekommene Neueinsteiger :) Hier meine Lösung zur Challenge:

public class Main {
public static void main(String[] args) {

Threadmaker.lassImHintergrundLaufen(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 11; i++) {
if(i % 2 != 0) {
try {
Thread.sleep(1010);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println(i);
} else {
continue;
}
}
}
});

for (int i = 0; i < 11; i++) {
if(i % 2 == 0) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println(i);
} else {
continue;
}

}
}
}

Ответить
@zeerux9887
@zeerux9887 - 13.06.2023 09:53

Moin Jonas, wieso braucht die run-Methofe in dem Fall einen try-catch-Block? Meine intuition hätte mir gesagt, ich kündige die exception einfach im methodenkopf an. Danke für deine Videos, immer, wenn ich nen Java-Tutorial brauche, suche ich in deinem Kanal :D!

Ответить
@sirartorias1330
@sirartorias1330 - 12.06.2023 16:46

Einwandfrei erklärt! Vielen Dank.

Ответить
@FIRSTBLAME
@FIRSTBLAME - 09.06.2023 01:28

Hi Mister Keil, ich muss schon sagen: "DAS war Mindblowing!" 🤯 Das ist mein erstes Video von Dir und ich habe Deinen Channel direkt mal Abonniert! 😌Ich habe erst vor kurzem angefangen mit Objekt_Orientierter_Programmierung (eigtl. Java an sich) und ich hab sehr VIEL verstanden! DANKE dafür und weiter so! 👍Liegt vermutlich an Deiner besonderen Art einen an der Hand zu nehmen und Stück für Stück durch den Code zu begleiten. Auch wenn es mühselig ist, erklärst Du im Detail! wie man von hier nach da kommt und was da eigentlich passiert etc.👏 - das hilft sehr auch bisher gelerntes zu vertiefen. Was toll ist, dass Du unterschiedliche Werkzeuge vorstellst um ein Problem zu lösen-was mich animiert die Lambda-Geschichte mal zeitnah anzuschauen. 👀Cool finde ich Deine Challenge(s) am Ende - gibt's hierzu auch Musterlösung(en) im Github o.ä.? PS: Kannst Du (oder gerne auch ein anderer) mir sagen wie das mit dem "IntelliJ" funktioniert? Das Addon ("React Buddy") hat bei mir auf Eclipse nicht geklappt - Hast Du evtl. eine Anweisung hierfür oder benutzt Du was anderes? 🤔- vielen Dank im Voraus und agaib: Weiter so!😎👍

Ответить
@apologetik8830
@apologetik8830 - 01.06.2023 18:31

Ballerst einfach durch das ganze Video double time

Ответить
@Aaackermann
@Aaackermann - 14.03.2023 19:12

Es gibt noch eine wichtige Methode in der Thread Klasse und die nennt sich "synchronized". Damit kann man die Threads wunderbar aufeinander abstimmen. Also der nächste Thread wird erst ausgeführt, wenn der erste bereits abgeschlossen ist (wie in seinem Zählbeispiel), nur dass man nicht mit einem "sleep" arbeiten muss.

Ответить
@marcelmalina8863
@marcelmalina8863 - 19.01.2023 21:11

Du erklärst diesen try dingens so schnell.. als ob jeder wüsste worüber du redest 😂 chill mal junge

Ответить
@omaral3338
@omaral3338 - 23.10.2022 23:49

Ein tolles Video, vielen Dank!
Es wäre sehr cool, wenn du noch ein Video für Streams machst :)

Ответить
@maxiviehauser7041
@maxiviehauser7041 - 13.09.2022 12:54

Sehr interessantes Video!
Hier meine Lösung zur Challenge am Schluss:

// 1.Klasse:
public class MyRunnable1 implements Runnable {
@Override
public void run() {
for (int i = 0; i <= 10; i += 2) {
System.out.println("Gerade Zahlen bis Zehn: " + i);
}
}
}

//2.Klasse:
public class MyRunnable2 implements Runnable {
@Override
public void run() {
for (int i = 1; i <= 10; i += 2) {
System.out.println("Ungerade Zahlen bis Zehn: " + i);
}
}
}

//Main Klasse:
public class Main {
public static void main(String[] args) {
MyRunnable1 runnable1 = new MyRunnable1();
MyRunnable2 runnable2 = new MyRunnable2();
Thread thread = new Thread(runnable1);
Thread thread2 = new Thread(runnable2);
thread.start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println();
thread2.start();
}
}


Kürzere Version mit Anwendung anonymer Runnable Klassen (alles in einer Klasse):

public class Multithreading {

public static void main(String[] args) {

Thread thread1 = new Thread(new Runnable() {

@Override
public void run() {
System.out.println("Gerade Zahlen bis 100:");
try {
Thread.sleep(1000);
for (int i = 2; i < 100; i += 2) {
System.out.println(i);
Thread.sleep(100);
}
} catch (InterruptedException e1) {
e1.printStackTrace();
}

}
});

thread1.start();
try {
thread1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}

Thread thread2 = new Thread(new Runnable() {

@Override
public void run() {
System.out.println("Ungerade Zahlen bis 100:");
try {
Thread.sleep(1000);
for (int i = 1; i < 100; i += 2) {
System.out.println(i);
Thread.sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});

thread2.start();

}
}

Ответить
@kontrollbereich8089
@kontrollbereich8089 - 01.08.2022 23:40

Wirklich toll gemacht, erklärt und veranschaulicht! Ich persönlich fände es allerdings noch wichtig, das Thema ExecutorServices zu ergänzen, da diese Methode des Multithreadings in Java für mich einfach deutlich praktikabler als der „ThreadMaker“ im Video ist. :)

Ответить
@hamzaa7335
@hamzaa7335 - 09.06.2022 12:39

Du kannst echt gut erklären, nach 5 Videos, war deins das Beste. Danke dir!

Ответить
@yavuzsimsek1890
@yavuzsimsek1890 - 27.05.2022 15:13

hey jonas, bin mit deiner playlist jetzt durch! vielen Dank dir für deine Hilfe und die krassen Erklärungen und Vereinfachungen.

Eine Frage hätte ich dennoch zum Schluss, und zwar bin ich ja jetzt alle Videos durch (und habe auch alle codes rausgeschrieben) und somit alle Themen die du in der Playlist hattest auch, jetzt frage ich mich nur noch, ist das Alles Alles in Java ? Also sind das alle Themen in Java und es gibt quasi keine anderen Themen mehr und das alles ist das gesamte Spektrum an Java und alles was ich jetzt nur noch machen müsste wäre das gelernte Wissen durch eigene Programme anzuwenden oder ? Oder ist das alles erst sowas wie ein Anfang in die noch riesigere Programmiersprache Java?
Hoffe du verstehst meine Frage.
Liebe Grüße

Ответить
@wee8149
@wee8149 - 14.05.2022 00:08

wie kann ich hier nun prüfen ob die threads beim letzten beispiel auch wirklich im hintergrund laufen... habe versucht mehrere threads nacheinander zu erzeugen doch bei der ausgabe sehe ich dass die sachen nacheinander ausgegeben werden und nicht zusammen...

Ответить
@yurikojuui3909
@yurikojuui3909 - 10.05.2022 17:24

Ich sitzt hier einfach in meim Wirtschaftsinformatik Studium und du hast mir das Thema besser erklärt als mein Prof xD
Find ich super nice, mach bitte weiter so!!

Ответить
@benschnitter4057
@benschnitter4057 - 21.04.2022 13:20

Bitte bitte bitte höre nicht auf mit deinen Tutorials!!! Mit dir macht Java endlich spaß.. und selbst schwierige Themen verstehe ich spielend leicht! Du hast ein Talent dafür, weiter so!!! <3

Ответить
@lynr6314
@lynr6314 - 19.04.2022 09:07

beste Java Videos, vielen dank! und du bist auch sehr hübsch!Schönen Tag noch!

Ответить
@mr_koc_ac1117
@mr_koc_ac1117 - 17.04.2022 20:27

Jonas komm nicht auf eine Idee deine Videos zu löschen oder so ähnliches :D Und wenn du sowas machst, dann sag mir bescheid, ich lade alle deine Java Tutorials runter.

Ответить
@SPIONAT
@SPIONAT - 15.04.2022 22:33

Bro du bist Gold wert danke dir 🙏🏽

Ответить
@linuxonkel8053
@linuxonkel8053 - 12.04.2022 02:04

ich hab mal noch n kleinen Tip für Anfänger, die IntelliJ nutzen. Gebt mal beim erstellen der Main Methode einfach psvm ein und drückt enter oder klickt den Vorschlag von Intelli an :)

Ответить
@EC007
@EC007 - 11.04.2022 19:39

Ich habe mir deine Playlist zu OOP von Java angeschaut. Sehr einfach und lehrreich erklärt, vielen Dank für den sehr guten Content. Verdienst auf jedenflall mehr Aufmerksamkeit.

Ответить
@dudewithdonuts7639
@dudewithdonuts7639 - 06.04.2022 21:17

Tolle Videoreihe, weiter so :D

Ответить