Java ExecutorService - Part 1 - Introduction

Поділитися
Вставка
  • Опубліковано 22 лис 2024

КОМЕНТАРІ • 291

  • @AyushSharma-ux4fk
    @AyushSharma-ux4fk 3 роки тому +3

    A very intelligent statement.
    If your tasks are I/O intensive e.g. DB calls, Network calls. Most of the threads would be in waiting state (waiting for DB response or Network call response) in such a scenario having a large thread pool is the right way to go. That way you would be able to start more tasks.
    Thanks

  • @mostinho7
    @mostinho7 4 роки тому +5

    Done thanks
    Thread pool instead of creating a 1000 threads which is expensive, can make a fixed size pool and submit 1000 tasks to it.
    3:40 how it works internally
    5:30 ideal pool size for cpu task is number of cores
    9:30 thread pool size for io intensive tasks

  • @fazilkhan6779
    @fazilkhan6779 Рік тому +3

    This executor service series is one of the best ever educational UA-cam series ever. Thanks a ton. Your explanation is awesome.

  • @yathiraju1000
    @yathiraju1000 5 років тому +5

    Guys please share his videos in other groups. we have to support this kind of content and it will be very useful to people who are looking for good content

  • @ramcorp542
    @ramcorp542 4 роки тому +27

    Thank you, you have a skill for explaining complex concepts in a clear concise manner. I would love to see full fledged courses created by you.

  • @MrSN99
    @MrSN99 7 місяців тому +1

    as i'm kotlin dev i just skipped this completely. But you explaining this made some things clearer. I didn't expect this.

  • @divyamahesh9032
    @divyamahesh9032 9 місяців тому

    You know while I start the interview preparation I'm watching all these videos saved , and this is my 3rd time watching it while I'm moving out of my 2nd company....🎉🎉
    Thanks for your great work .

    • @DefogTech
      @DefogTech  9 місяців тому +1

      That's so heartening to hear! Thank you for the kind words. Good luck for the new job. Wish you great success there as well.

  • @manish436
    @manish436 2 роки тому

    Really great explanation, adding one formula for I/O intensive task, according to "Java Concurrency in Practice"
    Number of threads = Number of Available Cores * (1 + Wait time / Service time)

  • @amritasahoo6773
    @amritasahoo6773 6 років тому +98

    Really explained well. This is the best I have found till now. Thank you. Keep up the good work :)

    • @DefogTech
      @DefogTech  6 років тому +4

      Thank you for the kind words!!

    • @yathiraju1000
      @yathiraju1000 5 років тому

      Yes this guy is awesome in subject and the way he is describing the concepts are speechless . I heard few concepts and all are above the notch.

    • @orangefield2308
      @orangefield2308 Рік тому

      best work ever, please make more videos !! I understand executorService finally

  • @sharatchandra9198
    @sharatchandra9198 3 роки тому

    I have read so many places, everything is of no use, you are brilliant.

  • @highlightsportz
    @highlightsportz 2 роки тому

    I as individual surf youtube a lot for learning purpose and almost have watched most of the youtuber on internet, But this channel is at another level in terms of quality . Thanks a lot sir . It would be great if you could take out some time and nail the microservice buzz words

  • @shivshaktipandey7148
    @shivshaktipandey7148 Рік тому

    explaining with how , why , what , when -------------- everything about the topic -------- hats off ----------- u will complete 100k soon bro

  • @nilesh6429
    @nilesh6429 6 років тому

    ThreadPoolSize tread off with CPU core concept is excellent. You have cleared all doubts about the size of the pool.
    Thank you.

    • @DefogTech
      @DefogTech  6 років тому

      You're welcome! I'm happy it helped

  • @ankitnavalakha508
    @ankitnavalakha508 5 років тому +4

    There are so many videos for multithreading available in UA-cam but I found you best because of your diagram presentation which is unique.
    You explained very well. You are awesome and continue with this key feature.

  • @clswar00p
    @clswar00p 3 роки тому

    Pleasant voice while explaning.Very clear

  • @sakship1558
    @sakship1558 2 роки тому

    Bestest explanation seen on Internet, thank you so much.

  • @siteshkulkarni5924
    @siteshkulkarni5924 2 роки тому

    Hi Deepak, I just watched all your 4 videos related to ExecutorService, you have shown how things can be explained in a super simple way yet powerful. Great job!! thanks.

  • @ruchigarg7788
    @ruchigarg7788 3 роки тому +3

    Really, so easily explained these concepts with how to implement. Superb. Should create a playlist of java 8.

  • @SchkuenteQoostewin
    @SchkuenteQoostewin 5 років тому +2

    Could you please teach the rest of India how to speak English. You are the poster child of clear flunet English. Your pitch and clarity in the words are masterful. Also your knowledge is strong, I love the tutorial and I am as American as corn.

  • @pepperjack6749
    @pepperjack6749 6 років тому +1

    Most concise and clear executor service description I’ve seen. Thank you!

  • @contactdi8426
    @contactdi8426 2 роки тому

    Holy Moli buddy!!! This was spot on! The BEST on the internet, cleared all my doubts right from basics to advance.. Super Thanks, I really appreciate great people like you that helps the community.

  • @thebibhuty
    @thebibhuty 5 років тому +8

    Just one suggestion, always give a link to working code, you explain well, the only thing I think missing is a link to a working code

  • @catlord69
    @catlord69 4 роки тому +17

    What the hell, you explain so well and clearly ! Amazing

  • @edeepakjain
    @edeepakjain 5 років тому +1

    Best video... Finally someone explained thread pool size derivation

  • @raidtheferry
    @raidtheferry 8 місяців тому

    Very high quality explanation and accompanying slideshow. I appreciate you making this video

  • @rishinjiya42
    @rishinjiya42 4 роки тому +1

    The best combination of content and explanation. I wish Deepak had videos and courses on everything I need as a Java/Spring developer

  • @shubhamjain2810
    @shubhamjain2810 4 роки тому

    Your way of explaining the topics are really good. I am having one question. It might be stupid one,but I wants to know
    How to handle the Atomicity for write and Read operation in Such case.
    Pool size is of 20.
    t1 to t20 are doing write operation. ---> They will be in waiting state
    t21 to t30 are doing Read operation. ---> In between any of this thread comes in and start reading and get response before completion of write operation of all 20 threads . It may get old data.

  • @divyanshpatel1301
    @divyanshpatel1301 Рік тому

    All the concepts u given is aksed in an interview, best explanation ❤

  • @sathishspeaks
    @sathishspeaks 2 роки тому

    Defog come back and do more videos you are the best in explaining complex concepts buddy

  • @jamshadm
    @jamshadm 3 роки тому

    I didnt understand why there are 49 dislikes for this video? He explained very well..

  • @utkalkesharisahu3014
    @utkalkesharisahu3014 2 роки тому

    You should post more bro.
    You really explain complicated topics in a really simple manner.

  • @odilhonislomov8954
    @odilhonislomov8954 2 роки тому

    THANK YOU !!! A LOT OF THANKS. There is no better explanation than yours. You are the best. Keep going

  • @kitkarson4226
    @kitkarson4226 3 роки тому

    Man .. god bless you!! Thanks!! you explain complex topics in a way anyone can understand.

  • @sanjeevanemani6720
    @sanjeevanemani6720 4 роки тому

    maan.....where u been all these days? Glad to find ur channel. Please make more videos.

  • @sametbaskc3768
    @sametbaskc3768 Рік тому +2

    Thanks for this clear explanation. You are doing a great job. I just wonder what is the strategy you follow to learn the concepts in crystal clear?
    Could you also share the resources (book, articles, docs) you follow when you were learning this topics?

  • @harikavolam7123
    @harikavolam7123 3 роки тому +1

    Thanks for explaining in both code and internal visualization of threads. Great explanation. You have explained complicated topic in very simple way.. Thanks a lot

  • @mattmilzewski1062
    @mattmilzewski1062 4 роки тому

    Explained excellently you are an absolute legend

  • @dvoulio
    @dvoulio 4 роки тому

    Guys.... the absolutely most crystal clear explanation of Thread Pools I have ever heard. Beautifully sparse, no-noise or arm waving... well-presented and recorded. Bravo... I have become a great fan and are convincing others as well !!
    One small request... what is the cursor enhancing software you are using in the presentation ???

    • @DefogTech
      @DefogTech  4 роки тому

      It's pointer function in Google Slides.
      Thank you so much for the kind words BTW! Means a lot to me

  • @RamKumar-dm6es
    @RamKumar-dm6es Рік тому

    Thank You Deepak bhaiya for explaing this concept so beautifully

  • @abzzz4u
    @abzzz4u 4 роки тому

    All answers in one video ....keep them coming bro

  • @sekharsoftware
    @sekharsoftware 5 років тому +1

    Really precise to the point and very useful. You should do a podcast.

  • @rj7560
    @rj7560 4 роки тому

    Big fan of you. Please more videos... Thank you very much.. much appreciated

  • @philipmartinelli6994
    @philipmartinelli6994 2 роки тому +1

    Awesome use of visualizations. This is really helpful, thank you!

  • @viveksingh-rt4py
    @viveksingh-rt4py 7 місяців тому

    Thanks a ton for sharing the video. Clear and concise explanation. May I ask you one question. Say If I have multi core processor and I have initialised ExecutorService with pool size as 100, all my task are IO intensive. Scheduler will make use of all core and will execute threads on different core. Is my understanding right.

  • @shikharchoudhary7639
    @shikharchoudhary7639 5 років тому

    Your visualization techniques are phenomenal.

  • @AshishBurnwal
    @AshishBurnwal 6 років тому

    This is the best tutorial I have ever seen for executor framework. Thanks a lot

  • @manishghoshi3861
    @manishghoshi3861 3 роки тому

    The best till now. Thanks.

  • @priyanka0112
    @priyanka0112 3 роки тому

    Awesome explanation. This is the best i have seen so far. Looking forward to watch all your videos.

  • @br4676
    @br4676 4 роки тому

    Thanks sir , this is the best video I have seen so far on this topic

  • @techieszone3704
    @techieszone3704 6 років тому +2

    Fantastic explaination..thanks. Can you pls share the slides of this tutorials also. Thanks!

  • @mehulsolanki9435
    @mehulsolanki9435 Рік тому

    Clear and concise. As simple as it can get. Keep up the good work!

  • @ahmedkhan8352
    @ahmedkhan8352 9 місяців тому

    I watched many videos, but your video is the best till now I have watched.
    Can you please make videos on "Fork Join" as well ?

  • @GanaviN-f1o
    @GanaviN-f1o 4 місяці тому

    you explained this so clearly.....thanks for this !

  • @marshalkiruba
    @marshalkiruba 4 роки тому +7

    Loved the explanation. Just a lame question. For a CPU intense operation, shouldn't the ideal thread pool size be (no of cores-1) as there is already a main thread running?

    • @rizwansayyed7893
      @rizwansayyed7893 3 роки тому

      i really would like to know this

    • @HussainMohammedAshruf
      @HussainMohammedAshruf 3 роки тому

      @@rizwansayyed7893 main thread dies soon, before other threads!

    • @rizwansayyed7893
      @rizwansayyed7893 3 роки тому

      @@HussainMohammedAshruf i don't understand does main thread count in cpu runtime cores available

  • @parambharti7095
    @parambharti7095 3 роки тому +1

    Extremely awesome. Please keep making videos like this.

  • @pratiklohar4566
    @pratiklohar4566 4 роки тому

    This the best explanation on executor service I have found so far . Thank you so much. Expecting more such videos from you !

  • @vijayakumarvj
    @vijayakumarvj 5 років тому +1

    Can you pls make videos with in-depth details on generics..I must say above videos are incredibly awesome

  • @flywithashutosh4772
    @flywithashutosh4772 5 років тому +1

    Why so less subscriber to such a beautiful channel , great work dude keep it up.

  • @shekhar_2014
    @shekhar_2014 3 роки тому

    I must tell you , your explanation on all topics are very clear and easily understandable. Thank you somuch for the vdos .. :) .. Can you please upload a vdo on React Js , If posible.

  • @gobindarora007
    @gobindarora007 5 років тому +2

    Cleared all my doubts. Thanks for this amazing video. Keep doing the great work.

  • @ayendreyeesinha7204
    @ayendreyeesinha7204 3 роки тому

    Nicely explained,👍👍👍👍, would like to see some video on design patterns from interview prospective...

  • @muchukundareddy5315
    @muchukundareddy5315 2 роки тому

    Great Explanation, 👍Could you please link this explanation to some Real-time scenarios(Enterprise applications)

  • @derrick3534
    @derrick3534 6 років тому

    Wow way better than the Udemy tutorial on Executors. You should expand on this and make a Udemy tutorial. Great teaching skills.

    • @DefogTech
      @DefogTech  6 років тому

      Thank you! My long term plan is to create my own site like egghead.io , let's see how that goes.

  • @vkalaivanan
    @vkalaivanan 4 роки тому +1

    Concepts are clear and simple to understand. Thank you :)

  • @rishipollai5646
    @rishipollai5646 3 роки тому

    Lots of love and support 💖 .. one of the best explanation

  • @RohitPal-lz1wf
    @RohitPal-lz1wf 3 роки тому

    Very well structured and explained perfectly. I would love to see the tutorial during my free time

  • @subhashanand2276
    @subhashanand2276 4 роки тому +1

    Thank you for clear and precise explanation.
    Is it useful to do multithreading on a single core processor in any way?

    • @rizwansayyed7893
      @rizwansayyed7893 3 роки тому

      its not possible as it has a single core your threads will be bump away in between i think

  • @FalconMinds
    @FalconMinds 2 роки тому

    Awesome explanation.. love your work brother

  • @sonyroy45
    @sonyroy45 3 роки тому

    You are awesome, please don't stop posting such videos 🙏

  • @raghavmanchanda4736
    @raghavmanchanda4736 Рік тому

    Best explanation ever, thanks for it😇😇

  • @raghavendradake2057
    @raghavendradake2057 5 років тому

    Crisp and clear explanation ... Amazing work 👍

  • @mikeprice7942
    @mikeprice7942 6 років тому

    You explain this topic very well! Appreciate the visualization!

  • @786PrvN
    @786PrvN 6 років тому +3

    Very much simplified and same effective as well. +1 :)

  • @princelowienalasa8776
    @princelowienalasa8776 5 років тому +5

    How I wish to add the new Java 8's newWorkStealingPools() method
    Thanks :)

  • @prateekgupta8861
    @prateekgupta8861 3 роки тому

    Very very well explained. Thanks.

  • @jyoshnaroy7205
    @jyoshnaroy7205 4 роки тому

    Outstanding explanation and thanks a lot. Life saver.

  • @sukiriparanavithana677
    @sukiriparanavithana677 3 роки тому

    Hi Deepak, I came across your work while searching for a clear explanation on use of Blocking Queue within ExecutorService. You have done a splendid explanation with excellent visual. My doubt is not cleared since you do not use Blocking Queue in the code you are showing. Yet your illustration has it. So does that mean a Blocking Queue exists within Executor by default? And we don't have to worry managing it? I have seen examples of assigning a separate BlockingQueue object when creating the ExecutorService. I will watch the other 3 as well.

    • @DefogTech
      @DefogTech  3 роки тому

      >So does that mean a Blocking Queue exists within Executor by default
      yes, thats correct. ExecutorService internally uses a BlockingQueue and we need not worry about managing it.

  • @kogilathotavijayreddy4963
    @kogilathotavijayreddy4963 2 роки тому

    Defog Tech! You live upto your name

  • @kooostia16
    @kooostia16 2 роки тому +1

    Can we have two thread pools, one for io tasks and another for cpu intensive tasks?

    • @DefogTech
      @DefogTech  2 роки тому +1

      Yes, we can have multiple threadpools in an application

  • @vijaynandwana4289
    @vijaynandwana4289 5 років тому +2

    You are awesome, thank you for posting these videos.

  • @vishlaldolare9557
    @vishlaldolare9557 5 років тому

    Awesome explanation today i actually understand thread

  • @smarttrupti2007
    @smarttrupti2007 Рік тому

    Beautiful explanation

  • @prakriti-ke-sath
    @prakriti-ke-sath 5 років тому

    Loved the way you explained , it was neat and clear , thank you very much.

  • @Maddy-jn5pk
    @Maddy-jn5pk 7 місяців тому

    Thank you, amazing explanation!

  • @aakashjain3498
    @aakashjain3498 4 роки тому

    Wow. Hats off for that explanation.

  • @himanshutripathi5735
    @himanshutripathi5735 4 роки тому

    @deepakvadgama Your way of explanation is awesome. I request you if you can add some System Design Videos during lockdown days, It will help the community and your subscriber a lot. I requesting you just because your way of teaching is just awesome. watched almost all videos and learned a lot. Kindly make videos on System design concept. Thanks Himanshu

  • @kamleshpar9847
    @kamleshpar9847 4 роки тому

    Very well explained , pl continue your excellent work

  • @muruganvellaichamy709
    @muruganvellaichamy709 5 років тому +5

    Very well explained. Thanks for this. :)

  • @hemanthsavithala4081
    @hemanthsavithala4081 5 років тому +1

    Awesome video...
    Thanks for your efforts & all

  • @mradityapatnaik
    @mradityapatnaik 2 роки тому

    A very nice tutorial. However, we missed to highlight one very important aspect and that is while using ExecutorService, one must call shutdown() when you are done calling all your tasks. And finally await with awaitTermination in a possible finally block. If we don't do that the ExecutorService continuous to listen for more tasks and doesnt kill itself automatically.

    • @mradityapatnaik
      @mradityapatnaik 2 роки тому

      I can see that this has been covered in the third part of the same series.

    • @DefogTech
      @DefogTech  2 роки тому

      Generally, a run program will have ThreadPool always ON, and it will keep sending tasks into it. I have rarely seen having to shutdown the pool.

    • @mradityapatnaik
      @mradityapatnaik 2 роки тому

      Hi @Defog Tech, your 3rd video in this series has covered the aspect of why ExecutorService object needs to be shutdown by calling shutdown() and after termination calling shutdownNow() in the finally block. If we don't do that then the ExecutorService continuous to listen for more tasks even when there aren't any more tasks to be executed resulting the program to never terminate which keeps the application alive for no reason.

    • @DefogTech
      @DefogTech  2 роки тому +1

      Thats true, it will keep listening to the tasks but having threads in wait state is not a big problem (it will occupy some MBs). I dont think an running ThreadPool stops the program from existing. A Java program should be able to still exit I think

    • @mradityapatnaik
      @mradityapatnaik 2 роки тому

      Ya, a listening executorService does prevent the program from exiting even after it executes all the given tasks. Thus, shutdown() becomes necessary followed by awaitingTermination for a certain timeout period. Basically what we expect from the program, actually happens on calling shutdown() on the service. It waits for all tasks to execute and then terminates the service.

  • @aditchauhan876
    @aditchauhan876 5 років тому +1

    Godly explanation

  • @learnlearn8230
    @learnlearn8230 4 роки тому

    Thanks a lot, very well explained .I feel one of the best video so far compare others on youtube

  • @digvijaynalawade9207
    @digvijaynalawade9207 2 роки тому

    Explained very nicely 👌

  • @sharatchandra9198
    @sharatchandra9198 3 роки тому

    extra extra ordinary.

  • @priyanka0112
    @priyanka0112 3 роки тому

    Please create videos on Design Patterns and SOLID Principles.

  • @sanjaykantheti4002
    @sanjaykantheti4002 5 років тому

    Deepak correct me if I am wrong. I believe reactive programming was introduced to avoid threads being waited for the IO operation to be completed.

    • @DefogTech
      @DefogTech  5 років тому +1

      Thats correct.. Checkout my video on Spring Webflux, that has this exact comparison

  • @CodeNCode-rm8ci
    @CodeNCode-rm8ci 3 роки тому

    Very good explanation.

  • @Hemantkumar7990
    @Hemantkumar7990 6 років тому

    easy and clear explanation on Executors.
    Thanks.

    • @DefogTech
      @DefogTech  6 років тому

      You're welcome. Glad you liked it

  • @rpkm85
    @rpkm85 6 років тому +2

    Very neatly explained... good work bro.. 👍🏻👍🏻

  • @rsousaj
    @rsousaj 3 роки тому

    Very well explained! Thanks