Тёмный

Phaser vs CountDownLatch vs CyclicBarrier 

Defog Tech
Подписаться 85 тыс.
Просмотров 77 тыс.
50% 1

Наука

Опубликовано:

 

29 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 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.
@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?
@nikhilpawar7876
@nikhilpawar7876 2 года назад
Great work brother 👍😁
@antonv6213
@antonv6213 5 лет назад
Very nice and simple examples. Thanks!
@TimC0x
@TimC0x 3 года назад
Best explanation ever!!!
@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?
@chetankhandave1072
@chetankhandave1072 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
@rakeshpatil5986
@rakeshpatil5986 5 лет назад
Amazing weapons! hats off:)
@hhcdghjjgsdrt235
@hhcdghjjgsdrt235 Год назад
cant thank u enough
@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 !
@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
@DhrumilShahDOTin
@DhrumilShahDOTin 5 лет назад
Phaser is still confusing for .me..
@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...
@knarasimha7489
@knarasimha7489 6 лет назад
These videos on java concurrency are amazing. Keep them coming
@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!
@_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..
@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 4 года назад
Correct! Even I was thinking why my program is not giving expected result. phaser.awaitAdvance(0) did the trick.
@ajeetsingh87
@ajeetsingh87 2 года назад
Can you create a tree and graph video series too? It would be very helpful
@anandkulkarni2111
@anandkulkarni2111 6 лет назад
Small request to add tiering of phasers and where that might be Needed
@piyushsingh867
@piyushsingh867 3 года назад
Super video! I applauded for ₹100.00 👏👏
@ErfanHossainShoaib
@ErfanHossainShoaib 3 года назад
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.
@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
@uzdik.student
@uzdik.student 3 года назад
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?
@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
@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
@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.
@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 RU-vid.
@phoneix24886
@phoneix24886 4 месяца назад
This is the best version of Java concurrency tutorial till date. Defog tech it is time to update the playlist with virtual thread.
@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.
@devanampriya1791
@devanampriya1791 Год назад
god of concurrency
@rajat0610
@rajat0610 2 года назад
so beautifully explained!!! subscribed right away!
@tjgawhane
@tjgawhane 9 месяцев назад
What is your approach to learn any topic in depth ?
@DefogTech
@DefogTech 9 месяцев назад
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/
@uma_mataji
@uma_mataji 2 года назад
Thanks for this nice Video which is made to easy understand the concept.
@mrrishiraj88
@mrrishiraj88 Год назад
🙏💯👍
@jagabandhumallick9538
@jagabandhumallick9538 3 года назад
Thanks for your all the thread videos . I got cleared my concepts
@Brajgamer
@Brajgamer 4 года назад
Can it happen that by the time a party register itself it's already phase 2 or 3 or so.
@alpavaidya412
@alpavaidya412 4 года назад
The visual representation is superb...clears concepts faster than just reading stuff
@ashokutube02
@ashokutube02 3 года назад
Thank you so much for making such awesome videos!
@prasannakhilar1273
@prasannakhilar1273 5 лет назад
Excellent videos. Blown away by the explanation..
@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!
@amarpalkaur3014
@amarpalkaur3014 5 лет назад
Really helpful Thanks a lot Can you please make video on Thread Dump
@MyTube.0101
@MyTube.0101 5 лет назад
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 5 лет назад
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
@daanishsarguru3044
@daanishsarguru3044 4 года назад
Thanks Deepak Sir, never stop making these videos
@sanjoyganguly9721
@sanjoyganguly9721 5 лет назад
Please show working example .. it will be helps more
@repakanagesh7615
@repakanagesh7615 3 года назад
Nice explaination . Thank you 👍
@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
@shilpajagdeesh6879
@shilpajagdeesh6879 3 года назад
Great explanation. Thank you.
@SosetaFurioasaJr
@SosetaFurioasaJr 3 года назад
Great explanation, thank you!
@mrinalraj7166
@mrinalraj7166 3 года назад
Thanks!! Subscribed
@amitsaha4539
@amitsaha4539 4 года назад
You are just superb.
@BhawaniSingh-jc7cw
@BhawaniSingh-jc7cw 4 года назад
Superb..Thanks
@MyTube.0101
@MyTube.0101 5 лет назад
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 .
@mrinalraj7166
@mrinalraj7166 3 года назад
Simply Amazing
@amitmhatre35
@amitmhatre35 5 лет назад
Nice explanation. Keep it up bro 👍🏻
@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) RU-vid 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.
@NarenderMajoka
@NarenderMajoka 4 года назад
Phaser: 04:55
@specialmaking
@specialmaking 5 лет назад
Great explanation!
@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.
@abhishekkrishna9757
@abhishekkrishna9757 6 лет назад
Very nicely explained. Thanks !!
@DefogTech
@DefogTech 6 лет назад
You're very welcome :)
@RagingSweet1984
@RagingSweet1984 5 лет назад
Really awesome videos!! Thx a lot!
@DefogTech
@DefogTech 5 лет назад
You're most welcome!
@twistersha
@twistersha 3 года назад
Superb explanation! You’ve saved 3 hrs of my life !
Далее
What is a SynchronousQueue in Java?
5:07
Просмотров 29 тыс.
Introduction to CompletableFuture in Java 8
19:34
Просмотров 326 тыс.
DAXSHAT!!! Avaz Oxun sahnada yeg'lab yubordi
10:46
Просмотров 269 тыс.
What are Java interrupts?
11:19
Просмотров 56 тыс.
Understanding how ForkJoinPool works
13:16
Просмотров 122 тыс.
Java BlockingQueue
17:48
Просмотров 40 тыс.
ThreadLocal in Java
10:59
Просмотров 185 тыс.
Bulkhead Pattern - Fault Tolerant Microservices
8:43
Обзор на 16 айфон
1:01
Просмотров 504 тыс.
CED: часть 1
23:37
Просмотров 57 тыс.
Playstation 2 в квадрате || Anbernic RG Cube
13:03