After watching all of your concurrency videos, my programmer brain has fundamentally changed. I am ready to use all the cores. Thank you.
@knarasimha74896 жыл бұрын
These videos on java concurrency are amazing. Keep them coming
@harigovind114 жыл бұрын
Nice video! Although one critical difference between Latches and Barriers are Barriers are used to wait on Threads i.e number specified on Barrier should be called from that many Threads while Latches are used to wait on events, i.e even the same Thread can call the countDown multiple times.
@KIRANNARAYANA1003 жыл бұрын
Very good catch...
@phoneix248866 ай бұрын
This is the best version of Java concurrency tutorial till date. Defog tech it is time to update the playlist with virtual thread.
@alpavaidya4124 жыл бұрын
The visual representation is superb...clears concepts faster than just reading stuff
@AshishBurnwal6 жыл бұрын
Thanks Deepak sir, the way you do the visualisation of the thread is amazing, it really helps us to understand in a better way. Thanks a lot for the wonderful tutorial.
@DefogTech6 жыл бұрын
Thanks much for the appreciation Ashish!
@thomassun30465 жыл бұрын
absolutely this is the best video for java concurrency,but there are many new terms coming up suddenly, so this one is still pretty hard to me, maybe in the future i will come back and watch again,hope i can get a better understanding
@DefogTech5 жыл бұрын
Thanks! To be honest, Phaser class is rarely used. Understanding CountDownLatch should be enough for most use-cases.
@thomassun30465 жыл бұрын
Defog Tech Thx mate, to be honest, I only understand CountDownLatch
@thomassun30465 жыл бұрын
Defog Tech hi mate, I have another question here about the Future and callable interface, say that I submit a task to the thread in the thread pool, then do other operations, and then I call future.get() if the thread finished execution, it will not block the main thread, but it will block the main thread if the thread in the pool doesn’t finish the task yet, so it is blocking the process
@nani2574 Жыл бұрын
I liked all the concurrency videos made by you. You explain these complex topics so simply. But it would have been really helpful if you have code along instead of using code snippets. It would help us to understand better
@kishoreramana15 жыл бұрын
You made our life quite easy to understand the concurrency in Java. Really your videos are amazing for me and most useful than books .
@DefogTech5 жыл бұрын
Thank you for your kind words sir!
@daanishsarguru30444 жыл бұрын
Thanks Deepak Sir, never stop making these videos
@abhisharma14535 жыл бұрын
Very nice explanation with graphics, accurate speed and perfect voice tempo.... really liked it !!!
@spaarks845 жыл бұрын
I listen at 1.75 speed, but yea, this guy has the best Java concurrency content on KZbin.
@rajat06102 жыл бұрын
so beautifully explained!!! subscribed right away!
@jagabandhumallick95383 жыл бұрын
Thanks for your all the thread videos . I got cleared my concepts
@nikhilpawar78762 жыл бұрын
Great work brother 👍😁
@prasannakhilar12735 жыл бұрын
Excellent videos. Blown away by the explanation..
@anandkulkarni21116 жыл бұрын
Small request to add tiering of phasers and where that might be Needed
@sebastijanp3 Жыл бұрын
Your videos are really TOP of the TOP. Maybe you could record something about practical applications of using Phaser. I still could not deduce from the video what would be a practical use of Phaser. I understand that it can be used as a substitution for Latch and Barrier but that is most probably not the main purpose. Also, do you have maybe a github source code for your videos?
@piyushsingh8673 жыл бұрын
Super video! I applauded for ₹100.00 👏👏
@uma_mataji3 жыл бұрын
Thanks for this nice Video which is made to easy understand the concept.
@antonv62135 жыл бұрын
Very nice and simple examples. Thanks!
@repakanagesh76153 жыл бұрын
Nice explaination . Thank you 👍
@computerforhack95265 жыл бұрын
1. What happens if latch reaches 0 but still latch.countdown() is called. 2. What happens when out of 3 threads 2 threads reaches barrier and barrier.reset() is performed.
@ajeetsingh872 жыл бұрын
Can you create a tree and graph video series too? It would be very helpful
@hemanthgp6 жыл бұрын
Amazing videos . Very very helpful . Please make more videos for collection , lambdas and other new features. Thanks
@DefogTech6 жыл бұрын
Thank you sir! Will try to make videos for those topics
@ashokutube023 жыл бұрын
Thank you so much for making such awesome videos!
@shilpajagdeesh68793 жыл бұрын
Great explanation. Thank you.
@TimC0x3 жыл бұрын
Best explanation ever!!!
@tejeswarsahu24985 жыл бұрын
I just executed the example(phaser acting as a countdownlatch) and tried to verify your explanation.But it seems i got different result.Just wanted to ask have you verified that example ?
@bollywood90ssongs652 жыл бұрын
yes same for me !
@twistersha3 жыл бұрын
Superb explanation! You’ve saved 3 hrs of my life !
@chetankhandave10725 жыл бұрын
Very good and simple explanation, great job. I found some problem when I try to run phaser (as CountDownLatch) program , I notice it do not give exact output as CountDownLatch program, but when I change phaser.awaitAdvance(1); to phaser.awaitAdvance(0); then it work exactly as CountDownLatch. Will you Please explain it ? thanks in advance
@SosetaFurioasaJr3 жыл бұрын
Great explanation, thank you!
@hyperborean724 жыл бұрын
Could you please clarify a bit more why is it needed to put the main thread into sleep mode when using the CyclicBareer or the Phaser as barrier?
@_abhishekmj_3 жыл бұрын
If we initialize phaser with 1. And then we register a thread separately - does that mean await advance count is 2 now? And it's deadlock! So, we shud either initialize or register and shud not do both! Hope I am saying right..
@ErfanHossainShoaib3 жыл бұрын
I am trying to build a class which constructor takes ListtaskList and this class executes tasks by using ExecutorService and LatchCountDown. Resposibilty of this class to executes task and decrement latch count. After end go back to the client.
@rakeshpatil59865 жыл бұрын
Amazing weapons! hats off:)
@uzdik.student3 жыл бұрын
9:47 What if the Main Thread reaches _phaser.arriveAndAwaitAdvance()_ before the Child Thread has even started? Isn't _phaser.register()_ supposed to be in the Main Thread and _phaser.arrive()_ in the Child thread?
@amitmhatre355 жыл бұрын
Nice explanation. Keep it up bro 👍🏻
@70ME3E4 жыл бұрын
Your videos are great, everything down to your channel name is good quality :) would like to donate but even google couldn't find that option anywhere
@DefogTech4 жыл бұрын
Thanks much! appreciate your kindness. I am planning to start (paid) KZbin memberships on the channel soon with exclusive content. Hopefully with enough support, I can do this full time.
@70ME3E4 жыл бұрын
"Hopefully with enough support, I can do this full time." that sounds beautiful, I hope that for you too.
@abhishekkrishna97576 жыл бұрын
Very nicely explained. Thanks !!
@DefogTech6 жыл бұрын
You're very welcome :)
@sju92275 жыл бұрын
Your 1st phaser example should have phaser.awaitAdvance(0) else it will not wait and return immediately.
@antonv62135 жыл бұрын
Thanks!
@pankaj3v5 жыл бұрын
Correct! Even I was thinking why my program is not giving expected result. phaser.awaitAdvance(0) did the trick.
@pandit-jee-bihar5 жыл бұрын
API names are worded differently but they are very similar to Promise API and supported methods like Promise.all() and Promise.allSettled(), if I am not wrong.
@mrinalraj71663 жыл бұрын
Thanks!! Subscribed
@specialmaking5 жыл бұрын
Great explanation!
@MyTube.01015 жыл бұрын
Nice video Deepak.Where should I use CountDownLatch?In most of the cases I use Callable and call get() which is a blocking operation then why I need CountDownLatch to let the main thread as same thing I can achieve using get call..please throw some light on this.
@DefogTech5 жыл бұрын
one example of count-down-latch is (before spring days), if you have a class which is waiting for other classes to initialize... (eg: UserService, RateService etc. which may get things from database and take time to initialize)..main class would do count-down-latch.await() and other classes would do count-down-latch.countdown() when they were ready. Here the executor service and callables donot help
@RagingSweet19846 жыл бұрын
Really awesome videos!! Thx a lot!
@DefogTech6 жыл бұрын
You're most welcome!
@amitsaha45394 жыл бұрын
You are just superb.
@BhawaniSingh-jc7cw4 жыл бұрын
Superb..Thanks
@prasanthrajendran16116 жыл бұрын
Good work, please keep doing your knowledge sharing
@DefogTech6 жыл бұрын
Thank you sir! Hopefully will keep adding more at a steady pace.
@chandrasekharreddyp5 жыл бұрын
Hey nice video, there is issue with the code for countDownLatch, you need to have synchronized(latch){latch.wait()} otherwise you will get exception.
@DefogTech5 жыл бұрын
Don't think so, countdown latch doesnt need extra synchronisation
@Brajgamer4 жыл бұрын
Can it happen that by the time a party register itself it's already phase 2 or 3 or so.
@mrinalraj71663 жыл бұрын
Simply Amazing
@amarpalkaur30146 жыл бұрын
Really helpful Thanks a lot Can you please make video on Thread Dump
@satyanarayanareddyb30522 жыл бұрын
Hi Defog, recently I've encountered this following question in one of the interview I faced and I was not able to answer it. Please Make a vide or let me know how it can be achieved. Q. How can you start Multiple threads(ex 10 threads) at the same time(exactly same time) int Java. Thanks in advance
@DefogTech2 жыл бұрын
Do you mean, start 10 tasks on 10 different threads at the same time? It purely depends on CPU scheduling which is not under control of Java but of Kernel thus its not possible to do that.
@satyanarayanareddyb30522 жыл бұрын
@@DefogTech start 10 individual threads.
@DefogTech2 жыл бұрын
ok, even thats not possible. If we use single thread to start 10 threads, then it will start them sequentially. Even if you have 10 existing threads start 1 thread each it will depend on if those 10 threads work simulatenously on 10 CPU cores. Maybe with CPU Core Affinity we can ensure that. And then have a timer(absolute, not relative) in those threads to start a new thread. Btw, also note that start() of the Thread only puts thread on runnable queue it doesnt instantly schedule it on CPU Sorry to say this, but I suspect the interviewer who asked the question also doesnt know enough about threading
@tjgawhane11 ай бұрын
What is your approach to learn any topic in depth ?
@DefogTech11 ай бұрын
Its nothing special. I love to read and understand complex topics. Reading good sources help (for Java I read Concurrency in Practice book, JEP articles, OpenJDK dev discussions etc.). For system design, the CS papers are typically excellent (Google, Meta, AWS, USENIX, SIGMOD, etc). - mail.openjdk.org/mailman/listinfo - openjdk.org/projects/jdk/17/jeps-since-jdk-11 - jcip.net/
@MyTube.01015 жыл бұрын
I have never come across any situation wherein only CyclicBarrier can be used as I was able to achieve the same thing with CounDownLatch.Can you give any usecase apart from player example wherein CyclicBarrier was best fit?
@nokia17275 жыл бұрын
Hi Manoj...I had an interview question on this.?Check here? stackoverflow.com/questions/54609585/how-to-stop-all-threads-if-anyone-fails-in-java/54609899#54609899
@MyTube.01015 жыл бұрын
@@nokia1727 We can achieve the same thing with CountDownLatch as well.. create a main thread which will span all other threads and wait for all threads to complete..if all threads have completed (no exception) then commit the transaction in main thread otherwise cancel rest of the threads and rollback the transaction .
@NarenderMajoka4 жыл бұрын
Phaser: 04:55
@hhcdghjjgsdrt235 Жыл бұрын
cant thank u enough
@sanjoyganguly97216 жыл бұрын
Please show working example .. it will be helps more