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

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น • 45

  • @JonasKeil
    @JonasKeil  2 ปีที่แล้ว +5

    🎉Wenn dir die Videos gefallen, dann unterstütze mich auf Patreon : www.patreon.com/JonasKeil
    📢Als Community Java lernen *(Discord)* : discord.gg/wkWe3FvdSu
    🚀Lerne Java in einer *Playlist* : bit.ly/3GKMucx

  • @benschnitter4057
    @benschnitter4057 2 ปีที่แล้ว +37

    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!!!

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +3

      Das freut und motiviert mich sehr, Danke Ben!! Was wünscht dir denn noch so für Themen? :)

    • @lyn8964
      @lyn8964 2 ปีที่แล้ว +3

      Ich auch!!!mit Jonas macht Java endlich Spaß!

  • @EC007
    @EC007 2 ปีที่แล้ว +13

    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.

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +2

      Danke für das tolle Feedback!😁🎉

  • @yurikojuui3909
    @yurikojuui3909 2 ปีที่แล้ว +8

    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!!

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว

      Als WI Kollegen muss man sich natürlich beistehen😁💪🏻 Freut mich sehr dass ich dir dabei helfen konnte!

    • @poki0261
      @poki0261 8 หลายเดือนก่อน

      kommt mir bekannt vor xD

  • @yoriiroy1720
    @yoriiroy1720 ปีที่แล้ว

    Macht richtig Spaß zuzuschauen!

  • @hamzaa7335
    @hamzaa7335 2 ปีที่แล้ว +1

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

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว

      Das freut mich, vielen Dank für das Lob!

  • @sirartorias1330
    @sirartorias1330 ปีที่แล้ว

    Einwandfrei erklärt! Vielen Dank.

  • @omaral3338
    @omaral3338 2 ปีที่แล้ว

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

  • @kavoos1000
    @kavoos1000 ปีที่แล้ว

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

  • @SPIONAT
    @SPIONAT 2 ปีที่แล้ว +3

    Bro du bist Gold wert danke dir 🙏🏽

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว

      Danke dir!!😁🙌🏻

  • @davidta584
    @davidta584 ปีที่แล้ว

    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;
    }
    }
    }
    }

  • @dudewithdonuts7639
    @dudewithdonuts7639 2 ปีที่แล้ว +4

    Tolle Videoreihe, weiter so :D

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +1

      Danke dir freut mich dass es dir gefällt 😁🎉

  • @kontrollbereich8089
    @kontrollbereich8089 2 ปีที่แล้ว

    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. :)

  • @Aaackermann
    @Aaackermann ปีที่แล้ว +1

    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.

  • @FIRSTBLAME
    @FIRSTBLAME ปีที่แล้ว +1

    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!😎👍

  • @lyn8964
    @lyn8964 2 ปีที่แล้ว +1

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

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +1

      Danke für das Kompliment und freut mich dass dir die Java Tutorials weiter helfen! 😁🙌🏻

  • @yavuzsimsek1890
    @yavuzsimsek1890 2 ปีที่แล้ว +3

    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

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +1

      Hey Yavuz, freut mich riesig, dass du die Playlist durch hast und meine Videos dir weiterhelfen konnten!🙏🏻
      Die Playlist ist noch lange nicht fertig und es gibt noch sehrr viel spannende Themen für dich zu lernen. Was ich dir als nächstes empfehlen kann ist functional programming in Java, dazu kommt Montag auch das nächste Video. Wenn du damit durch bist hast du die wesentlichen Funktionen von Java erstmal gemeistert. Dann kannst du dir mal anschauen wie Web Entwicklung mit Spring Boot funktioniert. Wird am Anfang sehrr verwirrend werden aber wenn du richtig mit Java Spring arbeiten kannst, bist du auf jeden Fall einer der Top Programmierer😁💪🏻

  • @zeeerux
    @zeeerux ปีที่แล้ว

    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!

  • @AlfredNrejaj-pn9jd
    @AlfredNrejaj-pn9jd หลายเดือนก่อน

    Lieber Jonas, wann kommt das uns allen versprochene Erklärungsvideo zu Streams?

  • @piarina
    @piarina ปีที่แล้ว

    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

  • @mabroukabd3341
    @mabroukabd3341 10 หลายเดือนก่อน

    Ich liebe deine videos. Kuss

  • @wee8149
    @wee8149 2 ปีที่แล้ว +1

    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...

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว

      Ich würde mit Thread.sleep() die Threads eine bestimmte Zeit schlafen legen. Wenn sie gleichzeitig aufwachen, laufen sie parallel, wenn sie nacheinander aufwachen, dann weißt du dass du nochmal über den Code schauen musst :)

  • @kent937
    @kent937 ปีที่แล้ว

    Was genau macht der Try catch Block?

  • @linuxonkel8053
    @linuxonkel8053 2 ปีที่แล้ว +3

    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 :)

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +1

      Super Tipp, vielen Dank! 😁🎉

    • @linuxonkel8053
      @linuxonkel8053 2 ปีที่แล้ว +2

      @@JonasKeil ja ab und zu weiß ich auch mal was :D

  • @maxiviehauser7041
    @maxiviehauser7041 2 ปีที่แล้ว

    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

  • @mr_koc_ac1117
    @mr_koc_ac1117 2 ปีที่แล้ว +2

    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.

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +1

      Haha alles gut, ich lösche nur Videos um sie nochmal verbessert hochzuladen. Trotzdem vielen Dank für das Kompliment!😁💪🏼

  • @apologetik8830
    @apologetik8830 ปีที่แล้ว

    Ballerst einfach durch das ganze Video double time

  • @Magischeminiwelten
    @Magischeminiwelten ปีที่แล้ว

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

  • @OettingerPirat
    @OettingerPirat 2 ปีที่แล้ว +1

    Und mal wieder top Video!!!
    Glaube, das Multithreading ist richtig mächtig! Freue mich schon, wenn meine Programmierversuche irgendwann den Umfang annehmen werden, bei dem das von Nöten sein wird. :)
    Hier meine Lösung: (die ThreadMaker Klasse poste ich hier jetzt mal nicht... die ist 1:1 von dir geklaut :S)
    package youTube.keilJonas;
    public class ZaehlenMitFaeden {

    public static void main(String[] args) {

    System.out.println("Programmstart...");
    ThreadMaker.hintergrundProzess(new Runnable() {


    @Override
    public void run() {
    for (int i = 1; i < 11; i++) {

    try {
    Thread.sleep(1000);
    } catch (Exception e) {
    System.out.println("Aua!");
    }

    if (i%2==0) {
    System.out.println(i);
    } // Ende if
    } // Ende for



    } // Ende .run()
    });


    ThreadMaker.hintergrundProzess(new Runnable() {
    @Override
    public void run() {
    for (int i = 1; i < 11; i++) {

    try {
    Thread.sleep(1000);
    } catch (Exception e) {
    System.out.println("Aua!");
    }

    if (i%2==1) {
    System.out.println(i);
    } // Ende if
    } // Ende for
    } // Ende .run()
    });

    } // Ende main-Methode
    }

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว +1

      Hey, wieder mal sehr schön gelöst! Anwenden wirst du das vermutlich, wenn du die Performance von größeren Web Anwendungen verbessern willst! Dann benutzt du einen Executor Service, der einzelne Task von allein parallelisiert :)

    • @niclasm14
      @niclasm14 ปีที่แล้ว

      Das Ziel wird hier doch verfehlt, oder etwa nicht? Bei mir werden so erst alle geraden und dann alle ungeraden Zahlen ausgegeben. War das Ziel nicht, die Zahlen abwechselnd auszugeben, sodass am Ende die Zahlen von 1-10 in der richtigen Reihenfolge zu sehen sind? Wie müsste der Code dafür abgeändert werden?