Phaser vs CountDownLatch vs CyclicBarrier

  Рет қаралды 78,299

Defog Tech

Defog Tech

Күн бұрын

Пікірлер: 85
@spaarks84
@spaarks84 5 жыл бұрын
After watching all of your concurrency videos, my programmer brain has fundamentally changed. I am ready to use all the cores. Thank you.
@knarasimha7489
@knarasimha7489 6 жыл бұрын
These videos on java concurrency are amazing. Keep them coming
@piyushsingh867
@piyushsingh867 4 жыл бұрын
Super video! I applauded for ₹100.00 👏👏
@harigovind11
@harigovind11 4 жыл бұрын
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.
@KIRANNARAYANA100
@KIRANNARAYANA100 3 жыл бұрын
Very good catch...
@phoneix24886
@phoneix24886 7 ай бұрын
This is the best version of Java concurrency tutorial till date. Defog tech it is time to update the playlist with virtual thread.
@AshishBurnwal
@AshishBurnwal 6 жыл бұрын
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.
@DefogTech
@DefogTech 6 жыл бұрын
Thanks much for the appreciation Ashish!
@alpavaidya412
@alpavaidya412 4 жыл бұрын
The visual representation is superb...clears concepts faster than just reading stuff
@thomassun3046
@thomassun3046 5 жыл бұрын
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
@DefogTech
@DefogTech 5 жыл бұрын
Thanks! To be honest, Phaser class is rarely used. Understanding CountDownLatch should be enough for most use-cases.
@thomassun3046
@thomassun3046 5 жыл бұрын
Defog Tech Thx mate, to be honest, I only understand CountDownLatch
@thomassun3046
@thomassun3046 5 жыл бұрын
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
@abhisharma1453
@abhisharma1453 5 жыл бұрын
Very nice explanation with graphics, accurate speed and perfect voice tempo.... really liked it !!!
@spaarks84
@spaarks84 5 жыл бұрын
I listen at 1.75 speed, but yea, this guy has the best Java concurrency content on KZbin.
@nani2574
@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
@rajat0610
@rajat0610 2 жыл бұрын
so beautifully explained!!! subscribed right away!
@kishoreramana1
@kishoreramana1 5 жыл бұрын
You made our life quite easy to understand the concurrency in Java. Really your videos are amazing for me and most useful than books .
@DefogTech
@DefogTech 5 жыл бұрын
Thank you for your kind words sir!
@daanishsarguru3044
@daanishsarguru3044 4 жыл бұрын
Thanks Deepak Sir, never stop making these videos
@jagabandhumallick9538
@jagabandhumallick9538 3 жыл бұрын
Thanks for your all the thread videos . I got cleared my concepts
@nikhilpawar7876
@nikhilpawar7876 3 жыл бұрын
Great work brother 👍😁
@prasannakhilar1273
@prasannakhilar1273 5 жыл бұрын
Excellent videos. Blown away by the explanation..
@uma_mataji
@uma_mataji 3 жыл бұрын
Thanks for this nice Video which is made to easy understand the concept.
@twistersha
@twistersha 3 жыл бұрын
Superb explanation! You’ve saved 3 hrs of my life !
@repakanagesh7615
@repakanagesh7615 3 жыл бұрын
Nice explaination . Thank you 👍
@antonv6213
@antonv6213 5 жыл бұрын
Very nice and simple examples. Thanks!
@anandkulkarni2111
@anandkulkarni2111 6 жыл бұрын
Small request to add tiering of phasers and where that might be Needed
@hemanthgp
@hemanthgp 6 жыл бұрын
Amazing videos . Very very helpful . Please make more videos for collection , lambdas and other new features. Thanks
@DefogTech
@DefogTech 6 жыл бұрын
Thank you sir! Will try to make videos for those topics
@sebastijanp3
@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?
@ashokutube02
@ashokutube02 3 жыл бұрын
Thank you so much for making such awesome videos!
@uzdik.student
@uzdik.student 4 жыл бұрын
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?
@shilpajagdeesh6879
@shilpajagdeesh6879 3 жыл бұрын
Great explanation. Thank you.
@ajeetsingh87
@ajeetsingh87 2 жыл бұрын
Can you create a tree and graph video series too? It would be very helpful
@tejeswarsahu2498
@tejeswarsahu2498 5 жыл бұрын
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 ?
@bollywood90ssongs65
@bollywood90ssongs65 2 жыл бұрын
yes same for me !
@SosetaFurioasaJr
@SosetaFurioasaJr 3 жыл бұрын
Great explanation, thank you!
@hyperborean72
@hyperborean72 4 жыл бұрын
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?
@amitmhatre35
@amitmhatre35 5 жыл бұрын
Nice explanation. Keep it up bro 👍🏻
@TimC0x
@TimC0x 3 жыл бұрын
Best explanation ever!!!
@abhishekkrishna9757
@abhishekkrishna9757 6 жыл бұрын
Very nicely explained. Thanks !!
@DefogTech
@DefogTech 6 жыл бұрын
You're very welcome :)
@chetankhandave
@chetankhandave 5 жыл бұрын
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
@70ME3E
@70ME3E 4 жыл бұрын
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
@DefogTech
@DefogTech 4 жыл бұрын
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.
@70ME3E
@70ME3E 4 жыл бұрын
"Hopefully with enough support, I can do this full time." that sounds beautiful, I hope that for you too.
@_abhishekmj_
@_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..
@Brajgamer
@Brajgamer 4 жыл бұрын
Can it happen that by the time a party register itself it's already phase 2 or 3 or so.
@rakeshpatil5986
@rakeshpatil5986 6 жыл бұрын
Amazing weapons! hats off:)
@computerforhack9526
@computerforhack9526 5 жыл бұрын
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.
@prasanthrajendran1611
@prasanthrajendran1611 6 жыл бұрын
Good work, please keep doing your knowledge sharing
@DefogTech
@DefogTech 6 жыл бұрын
Thank you sir! Hopefully will keep adding more at a steady pace.
@RagingSweet1984
@RagingSweet1984 6 жыл бұрын
Really awesome videos!! Thx a lot!
@DefogTech
@DefogTech 6 жыл бұрын
You're most welcome!
@ErfanHossainShoaib
@ErfanHossainShoaib 4 жыл бұрын
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.
@mrinalraj7166
@mrinalraj7166 3 жыл бұрын
Thanks!! Subscribed
@sju9227
@sju9227 5 жыл бұрын
Your 1st phaser example should have phaser.awaitAdvance(0) else it will not wait and return immediately.
@antonv6213
@antonv6213 5 жыл бұрын
Thanks!
@pankaj3v
@pankaj3v 5 жыл бұрын
Correct! Even I was thinking why my program is not giving expected result. phaser.awaitAdvance(0) did the trick.
@NarenderMajoka
@NarenderMajoka 4 жыл бұрын
Phaser: 04:55
@specialmaking
@specialmaking 6 жыл бұрын
Great explanation!
@amarpalkaur3014
@amarpalkaur3014 6 жыл бұрын
Really helpful Thanks a lot Can you please make video on Thread Dump
@amitsaha4539
@amitsaha4539 4 жыл бұрын
You are just superb.
@BhawaniSingh-jc7cw
@BhawaniSingh-jc7cw 4 жыл бұрын
Superb..Thanks
@mrinalraj7166
@mrinalraj7166 3 жыл бұрын
Simply Amazing
@MyTube.0101
@MyTube.0101 6 жыл бұрын
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?
@nokia1727
@nokia1727 5 жыл бұрын
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.0101
@MyTube.0101 5 жыл бұрын
@@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 .
@MyTube.0101
@MyTube.0101 6 жыл бұрын
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.
@DefogTech
@DefogTech 6 жыл бұрын
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
@chandrasekharreddyp
@chandrasekharreddyp 5 жыл бұрын
Hey nice video, there is issue with the code for countDownLatch, you need to have synchronized(latch){latch.wait()} otherwise you will get exception.
@DefogTech
@DefogTech 5 жыл бұрын
Don't think so, countdown latch doesnt need extra synchronisation
@pandit-jee-bihar
@pandit-jee-bihar 5 жыл бұрын
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.
@satyanarayanareddyb3052
@satyanarayanareddyb3052 2 жыл бұрын
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
@DefogTech
@DefogTech 2 жыл бұрын
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.
@satyanarayanareddyb3052
@satyanarayanareddyb3052 2 жыл бұрын
@@DefogTech start 10 individual threads.
@DefogTech
@DefogTech 2 жыл бұрын
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
@sanjoyganguly9721
@sanjoyganguly9721 6 жыл бұрын
Please show working example .. it will be helps more
@tjgawhane
@tjgawhane 11 ай бұрын
What is your approach to learn any topic in depth ?
@DefogTech
@DefogTech 11 ай бұрын
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/
@hhcdghjjgsdrt235
@hhcdghjjgsdrt235 2 жыл бұрын
cant thank u enough
@devanampriya1791
@devanampriya1791 Жыл бұрын
god of concurrency
@DhrumilShahDOTin
@DhrumilShahDOTin 5 жыл бұрын
Phaser is still confusing for .me..
@mrrishiraj88
@mrrishiraj88 Жыл бұрын
🙏💯👍
What is a SynchronousQueue in Java?
5:07
Defog Tech
Рет қаралды 30 М.
Understanding how ForkJoinPool works
13:16
Defog Tech
Рет қаралды 124 М.
To Brawl AND BEYOND!
00:51
Brawl Stars
Рет қаралды 17 МЛН
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН
ReadWriteLock vs ReentrantLock
9:50
Defog Tech
Рет қаралды 82 М.
ThreadLocal in Java
10:59
Defog Tech
Рет қаралды 189 М.
What are Java interrupts?
11:19
Defog Tech
Рет қаралды 57 М.
Java Asynchronous Programming
16:07
Defog Tech
Рет қаралды 148 М.
Semaphore in Java Concurrency
9:40
Defog Tech
Рет қаралды 111 М.
Concurrency vs Parallelism
8:23
Defog Tech
Рет қаралды 246 М.
Circuit Breaker Pattern - Fault Tolerant Microservices
12:19
Defog Tech
Рет қаралды 191 М.
AOT vs JIT compilation in Java
10:02
Defog Tech
Рет қаралды 65 М.
Java ReentrantLock - fairness, tryLock and more
13:17
Defog Tech
Рет қаралды 136 М.
Java Concurrency Interview Question: How to timeout a thread?
10:45