Java 8 CompletableFuture Tutorial with Examples | runAsync() & supplyAsync() | JavaTechie | Part 1

Sdílet
Vložit
  • čas přidán 7. 10. 2021
  • In this tutorial I’ll give you a detailed explanation of CompletableFuture and all its methods using simple examples
    This is part 1 video where we discussed below context
    What is completableFuture
    Why CompletableFuture where already we have Future in java 5
    How to create Completablefuture
    How to use runAsync and supply Async method with use case
    #javatechie #Java8 #CompletableFuture @Multithreading
    GitHub:
    github.com/Java-Techie-jt/com...
    Blogs:
    / javatechie
    Facebook:
    / 919464521471923
    guys if you like this video please do subscribe now and press the bell icon to not miss any update from Java Techie
    Disclaimer/Policy:
    --------------------------------
    Note : All uploaded content in this channel is mine and its not copied from any community ,
    you are free to use source code from above mentioned GitHub account
  • Věda a technologie

Komentáře • 92

  • @indraalapati989
    @indraalapati989 Před 2 lety +27

    Thank you Basant for making this. I would like to add one more point as completable future by default uses forkjoin pool, this pool has core pool size, if the application is IO intensive it is good to use overloaded constructor (thread pool) to achieve max throughput.

    • @Javatechie
      @Javatechie  Před 2 lety +3

      Thanks Indra for this info 👍🏻

  • @venkatah9847
    @venkatah9847 Před 2 lety +3

    Thank you for this video and this will be really helpful for one of my tasks that i am working on. Thank you for your efforts.

  • @yogeshchaudhary621
    @yogeshchaudhary621 Před 2 lety +2

    Thanks for explaining in the simplest way possible.

  • @shubhampatidar6116
    @shubhampatidar6116 Před rokem +2

    I like your code proof for everything - Thanks for your continuity

  • @abhishekwasave9010
    @abhishekwasave9010 Před 2 lety +2

    Very well explained video with real example ..thanks it helped alot 👍👏

  • @sureshsadanala4639
    @sureshsadanala4639 Před 2 lety +1

    Great content Basant. Thank you :)

  • @neha6000
    @neha6000 Před 2 lety +1

    Great video again thanks

  • @aasthadubey1891
    @aasthadubey1891 Před 2 lety +1

    Good content. Thank you .

  • @adityavyas6603
    @adityavyas6603 Před 2 lety +1

    Thanks @Basant thank you for this wonderful tutorial...

  • @fitcoder2021
    @fitcoder2021 Před 2 lety +1

    Great job sir 👍

  • @Moulik23
    @Moulik23 Před 2 lety +1

    Thank you for this awesome topic.

  • @chamithfernando2663
    @chamithfernando2663 Před 2 lety +1

    good explanation

  • @pratishrutipanda6461
    @pratishrutipanda6461 Před 2 lety +1

    Nice content 👍

  • @funcoding1797
    @funcoding1797 Před 2 lety +1

    Great bro... tnx alot

  • @harish-wi3ts
    @harish-wi3ts Před 2 lety +1

    Awesome...

  • @ankxy1
    @ankxy1 Před 6 měsíci

    Great 👍

  • @bireshsingh6305
    @bireshsingh6305 Před 2 lety +1

    Thank you so much for this another good content.

  • @sreetmi1918
    @sreetmi1918 Před 9 měsíci +1

    This is a wonderful work I say.. great job basant...

  • @pnworks9186
    @pnworks9186 Před rokem +1

    Thank You Sir.

  • @shahrukshaikh185
    @shahrukshaikh185 Před 2 lety +1

    Bravo..!!!!

  • @AxeTvCommunity
    @AxeTvCommunity Před 2 lety +7

    💯
    Best explanation compared to any other resource out there
    Please keep making videos🙏

  • @sateesh9525
    @sateesh9525 Před rokem +1

    very good video for completable future videos

  • @rameshchowdarapally
    @rameshchowdarapally Před 3 měsíci +1

    Great content

  • @psudhakarreddy6548
    @psudhakarreddy6548 Před rokem +2

    Thank you bro. I learned many things from your channel.

    • @Javatechie
      @Javatechie  Před rokem +1

      Keep learning buddy good to hear this 😍

  • @AHMADRAZAKHANjava
    @AHMADRAZAKHANjava Před 2 lety +1

    Much respect for this video.

  • @Mahesh-ry9oe
    @Mahesh-ry9oe Před 2 lety

    Nice tutorial
    But we can achieve also using lisnable future it's having addcallback method which is non blocking . We can execute rest of code.

  • @likithr.n9692
    @likithr.n9692 Před 3 měsíci +1

    Can there be a better explanation than this, really awesome man!

  • @harshverm776
    @harshverm776 Před 3 měsíci +1

    Thanks Buddy !!!

  • @fabricioaraujo7642
    @fabricioaraujo7642 Před 2 lety +1

    thanks a lot man !!

  • @9703080696
    @9703080696 Před 2 lety +1

    Very good explanation 👌

  • @ankitbhatia6128
    @ankitbhatia6128 Před rokem

    Good content..

  • @niteeshchandanshire4381
    @niteeshchandanshire4381 Před 7 měsíci

    Thank you sir for such explanation 🙏🏻

  • @seatconnect224
    @seatconnect224 Před 2 lety +1

    best tutorials

  • @MuraliM.A.
    @MuraliM.A. Před měsícem

    Thanks for the video, what is the advantage using own executors over the global poo thread?

  • @PradeepKumar-db7pe
    @PradeepKumar-db7pe Před 5 měsíci

    Thanks @JavaTechie! One Question - when you write runAsyncFuture.toCompletableFuture(); Do we conditionally complete it using if? or it is completed by auto-detecting the blocking state?

  • @user-nv1bp6fk6z
    @user-nv1bp6fk6z Před rokem

    Please do a video on to clarify callable, completablefuture and executor.

  • @user-ew9dy9rm8b
    @user-ew9dy9rm8b Před 9 měsíci +1

    Good explanation keep it up. Include where to shutdown executor

  • @shubhamsingla4289
    @shubhamsingla4289 Před 9 měsíci

    any one suggest, I don't want to hold my main tread to complete the executions of child treads, so that i can return the response as soon as i started by async method.

  • @shyamthe1
    @shyamthe1 Před 2 lety +3

    Always on point. Videos from this channel are very practical and easy to follow even the complex concepts. Appreciate the time and effort spent in creating it.
    Is there a video that explains different threadpool mechanisms in the executor service?

    • @Javatechie
      @Javatechie  Před 2 lety +2

      Thanks buddy , I will cover that as well

  • @noumaanmohammad1274
    @noumaanmohammad1274 Před 2 lety +1

    Awesome video. get method wont be blocking main thread until supply async completes its task? If yes can we have whencomplete method?

  • @MuresanVladMihail
    @MuresanVladMihail Před rokem +1

    💯

  • @vsprasadavantsa7203
    @vsprasadavantsa7203 Před rokem +2

    Thanks

  • @kelvintsangxxx7581
    @kelvintsangxxx7581 Před 2 lety +1

    thx

  • @rishikeshkmr
    @rishikeshkmr Před 2 měsíci

    Can't we use try catch block to handle the exception in case of Future

  • @insane2539
    @insane2539 Před 2 lety +2

    Hi java techie bro need video tutorials of
    1.Aws batch to implement cron jobs in spring boot
    2.Implementing swagger into your microservice and using swagger to generate client call stubs
    3.Implementing elastic search for search in your spring boot modules
    Please make these tutorials also!!!!

    • @Javatechie
      @Javatechie  Před 2 lety

      1 & 2 both are good content . I will prepare this but 3rd one already there please have a look

    • @insane2539
      @insane2539 Před 2 lety

      @@Javatechie Also bro
      3. Implementing amazon codebuild, codepipeline in your microservice in spring boot for CI/CD
      4. Implementing Liquibase in spring module to manage schema changes across multiple environments like qa,uat,prod,test

    • @Javatechie
      @Javatechie  Před 2 lety

      @@insane2539 I am not sure whether you gone through my AWS playlist or not .

    • @insane2539
      @insane2539 Před 2 lety +1

      @@Javatechie ok ill check it

  • @preetird8385
    @preetird8385 Před rokem +2

    Hi sir could you please make a video on how to mock "supplyAsync" method of completablefuture in Junit class. I'm stuck there and tried everything possible on GitHub and stack overflow. It's failing or going into infinite loop.
    The scenario is that supplyAsync method is overridden in the class.

  • @nikhileshyoutube4924
    @nikhileshyoutube4924 Před 2 lety

    Bro make a video on java developer learning path for junior developer's & upcoming fresher's

  • @abhishakchauhan4580
    @abhishakchauhan4580 Před 3 měsíci

    Suppose in 1 function you have execute three method inside CF and T1, T2, T3 start
    Now on T1 thread, in this method i want to split in more sub task because i have some complex logic in first method
    T1. 1
    T1. 2
    T1. 3

  • @monsterhuntergo
    @monsterhuntergo Před rokem +2

    Awesome video. I would like to ask the difference between Executor and ExecutorService ...
    and Future and FutureTask? When and which one to use? thanks

  • @anjalikotha595
    @anjalikotha595 Před 5 měsíci

    Hi sir can you pls upload junit groovy test classes for unasync methods

  • @ainigma100
    @ainigma100 Před 4 měsíci

    Thank you for the video! Is it possible to use this approach assuming the following scenario? We have a method in the service layer that is calling inside 6 external services using feign client. We would like to call them in parallel to reduce the execution time. Keep in mind that each of these API calls is also validation the data they receive. If all the checks of every external API call is ok, then we are fine. In case at least one of the API results does not satisfy our conditions, we have to throw an exception. Can we use this approach or there is another way to do it? Thank you in advance for your time!

    • @Javatechie
      @Javatechie  Před 4 měsíci

      Yes absolutely possible if the rest call itself throws an error then it will automatically terminate

  • @tejay1551
    @tejay1551 Před 2 lety +2

    Thanks for this tutorial, I have few queries :
    why only one thread used when we pass executor service with thread pool of size 5? is there any way to spin up multiple threads if the file is large?

    • @Javatechie
      @Javatechie  Před 2 lety +1

      Since I am playing here with less data . which can be handled by single thread but even I tried to spin up with multiple thread with 1k records but not getting different behaviour.

    • @tejay1551
      @tejay1551 Před 2 lety +1

      @@Javatechie may be the behaviour AS IS to Read one file --> one thread.

    • @Javatechie
      @Javatechie  Před 2 lety

      I will dig this and let you know

    • @tejay1551
      @tejay1551 Před 2 lety +1

      @@Javatechie Thank you.

    • @smithaitufe6984
      @smithaitufe6984 Před rokem

      ​@@Javatechie thanks for the video. Any feedback from your digging?

  • @farhaankazi7134
    @farhaankazi7134 Před 8 měsíci

    Hi Java Techie, You gave the example of runAsync(). In that you called get(). My question is that is correct that the main thread calls get() method of completable future instance, because in that case only CompletableFuture will get chance to complete processing. CompletableFuture has Daemon threads if main thread dies then daemon will be automatically died. If we did not use get method rather we use callback then we have to make the main thread sleep for seconds so that CompletableFuture and its callback will get chance to complete process otherwise daemon threads of CompletableFuture, will die along with main thread of JVM.

  • @vipulnigam5019
    @vipulnigam5019 Před rokem

    We can use invokeAll() by adding all these futures in list

  • @srikarthikeyakante3152
    @srikarthikeyakante3152 Před 2 lety +1

    Sir, I was trying to implement a scheduler cron job which will take cron expression from database when ever the application starts.but challenge here is how to get cron expression from table with out restart of application.can you make a video on this??

    • @mayurkadam1926
      @mayurkadam1926 Před 2 lety

      Use quartz scheduler with jdbc implementation

    • @Javatechie
      @Javatechie  Před 2 lety

      Use @PostConstruct

    • @srikarthikeyakante3152
      @srikarthikeyakante3152 Před 2 lety

      @@Javatechie
      Sry sir I have edited my question..I need to get cron expression from table with out restarting the application.scenariio is I have inserted cron expression for 5 mins and after that I changed to 10 mins.i need to get expression from table with out restarting the spring application.
      Thanks

  • @monsterhuntergo
    @monsterhuntergo Před rokem

    Pls help share the link of the next video? thanks so much

  • @valkyriegaming478
    @valkyriegaming478 Před rokem

    How to mock completablefuture in mockito

  • @dineshreddyambu
    @dineshreddyambu Před rokem +1

    Spring webflux will also do the same . How it is different from mono and flux?

    • @Javatechie
      @Javatechie  Před rokem

      Dinesh both are non comparable buddy

  • @biswajitmaity1128
    @biswajitmaity1128 Před 2 lety +1

    Couple of example showing here , using get() method which are blocking threads , why ? Why are you not using complete() method ?

    • @Javatechie
      @Javatechie  Před 2 lety

      It's just a demo video to demonstrate all methods buddy

  • @Mike-ci5io
    @Mike-ci5io Před rokem

    You can pass a CountDownLatch to the futures to join them

  • @oshogarg5215
    @oshogarg5215 Před rokem +1

    do you also have a video on Executor Service?

  • @wazeeharaa8100
    @wazeeharaa8100 Před 2 lety

    Future.cancel ?

  • @arunmenon1025
    @arunmenon1025 Před 11 měsíci

    where is the 3rd part?

  • @signorealex
    @signorealex Před měsícem +1

    Thanks for the content 🙂
    I think the correct method is complete() and not toCompletableFuture () - mintutes 28:50 czcams.com/video/GJ5Tx43q6KM/video.html

  • @ayushjain7555
    @ayushjain7555 Před 5 měsíci +2

    the video is not making any sense

    • @agarwalr5205
      @agarwalr5205 Před měsícem +1

      You need to understand multi-threading concepts first, then this video will make sense and you will be able to co-relate the traditional multithreading and the advantages of using CompletableFuture. I hope this helps.