Concurrency Vs Parallelism!

Поделиться
HTML-код
  • Опубликовано: 22 авг 2024

Комментарии • 63

  • @dejanualex
    @dejanualex Месяц назад +92

    "Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once." R. Pike

    • @Rishi_Khandelwal
      @Rishi_Khandelwal 11 дней назад +2

      What do you mean by dealing and doing? Please clarify.

    • @dejanualex
      @dejanualex 11 дней назад

      @@Rishi_Khandelwal Although concurrency and parallelism are related concepts in terms of concurrent programming and can be used together, they aren't the same thing. Concurrency = multiple tasks that start/run/complete in overlapping time periods and in no specific order. vs. Parallelism = multiple tasks that run at the same time.

  • @dawidkrol1
    @dawidkrol1 Месяц назад +7

    Thank you for explaining concurrency and parallelism in understable way.

  • @gus473
    @gus473 Месяц назад +14

    Appears you're on a path to have 1,000,000 subscribers by year-end! Hoping you make it! 🍻😎✌️

  • @vijayas8007
    @vijayas8007 Месяц назад +36

    Concurrency is abt managing and parallelism is abt executing

    • @wexwexexort
      @wexwexexort Месяц назад +1

      wtf is abt

    • @dy0mber847
      @dy0mber847 Месяц назад +2

      ​@@wexwexexortabout i guess

    • @wexwexexort
      @wexwexexort 21 день назад

      @@dy0mber847 lol, that makes sense.

  • @tobiassjoholm9325
    @tobiassjoholm9325 Месяц назад +4

    This is wrong?
    Concurrency on multiple CPU cores enables parallel execution.
    Concurrency on a single CPU core requires switching.
    Parallelism is a subset of concurrency.

    • @mohammedgoder
      @mohammedgoder Месяц назад +1

      Absolutely.
      Yeah, people try to redefine words that already have a definition.
      Concurrent literally means at the same time.
      I will never understand the followers that just go with it without thinking "is he correct?"

  • @janbodnar7815
    @janbodnar7815 Месяц назад +1

    Great explanation. I would add a couple of remarks. You have to be aware that these terms may be used differently, people sometimes mixed them up. Or some use a different terminology. For instance, .NET uses the terms synchronous and asynchronous.
    I came across this definition of concurrency: concurrency means that two or more calculations happen within the same time frame. Meaning, several tasks run (with context switching) within a period of say 3 minutes. Managing multiple tasks simultaneously (within a time frame) is a good definition as well.
    IO-heavy and CPU-heavy is often referred to as IO-bound and CPU-bound. There is also the multitasking term, which is a more informal term that overlaps with both concurrent and parallel.
    Concurrency is an umbrella term for both concurrent and parallel execution. Parallel execution is a specific case of concurrency. But when they say the tasks runs concurrently, it means they run in interleaved, non-parallel way.
    This video is so good that I recommend to rewatch it any time a confusion arises.

  • @emmaccen
    @emmaccen Месяц назад +5

    paraconcurrent should be a word.

  • @web9529
    @web9529 Месяц назад

    Clear and concise with good animations, great video!

  • @je_suis_onur
    @je_suis_onur Месяц назад

    When talking about multi-cores or multi-cpus for doing parallel tasks the most important thing to watch out for would the cpu/core cache coherency. It would've been nice to touch on that too. Keep up the good work though! Cool video.

  • @s8x.
    @s8x. Месяц назад +1

    parallelism is a type of concurrency

  • @raj_kundalia
    @raj_kundalia Месяц назад

    Thank you for doing this!

  • @Zmey5656
    @Zmey5656 Месяц назад +1

    In the Go language, parallelism and concurrency are often confused

  • @TheArmenianSolider65
    @TheArmenianSolider65 Месяц назад

    I was asked to explain this concept recently in my system design interview at Disney for what was essentially implement Launch Darkly

    • @Obie.
      @Obie. Месяц назад

      I see you didn’t get the job

  • @TheIronMan9
    @TheIronMan9 Месяц назад

    Hello Sir, as and always Thanks for the great content. Please make a video on ACTOR SYSTEM.

  • @rammehar5531
    @rammehar5531 Месяц назад

    Thank you very much for all the knowledgeable videos. We respect your efforts. Please make a video on system design of online coding judge, how leetcode or hacker rank handles the online contest's load.

  • @lukecho386
    @lukecho386 22 дня назад

    So is it right when I say concurrency is better for multiple network call, like reading from a database, using concurrency, and based on each of the results returned, i can handle simultaneous computations using parallelism?

  • @nanonkay5669
    @nanonkay5669 Месяц назад

    Using Go made me understand this better

  • @Testmail-lu8tl
    @Testmail-lu8tl Месяц назад

    Concurrency to enable parallelism...nice idea to ponder

  • @tonym5857
    @tonym5857 Месяц назад +1

    Youe content awesome 👏👏👏👏

  • @franciscoalbertomm7768
    @franciscoalbertomm7768 Месяц назад

    you are very good, thanks so much for all

  • @LuisAntolin
    @LuisAntolin Месяц назад

    Just brilliant!

  • @vnit4security
    @vnit4security Месяц назад

    Nice Tut. Thanks 🍓🍓🍓

  • @Tony-dp1rl
    @Tony-dp1rl Месяц назад

    It's kinda a blurry line now though, for most development, your software is running virtualized anyway. .

  • @emonymph6911
    @emonymph6911 22 дня назад

    How do you do parallelism while maintaining order? Is it possible?

  • @DK-ox7ze
    @DK-ox7ze Месяц назад +2

    Isn't this a repeat?

  • @psycho.2u
    @psycho.2u Месяц назад

    All we can do with a programming language ( such as C#, Java, python ) is to write a concurrent program. And when we run them on a machine, it may run parallelly or not. This is decided by the OS which decides it based on the hardware availability
    In these languages, we don't have much control to forcefully run tasks in truly parallel manner. These programming languages abstract away those details
    Is the above understanding right?

    • @RoyoItakoride
      @RoyoItakoride Месяц назад +1

      I am thinking the same way too. I encourage you to read Grokking concurrency By Kirill Bobrov for deeper explanation regarding this topic :D

    • @janbodnar7815
      @janbodnar7815 Месяц назад +1

      Yes, to my understanding, this is the case. If you let's say call Parallel.ForEach in C#, you give a hint to the OS that you would like to run it in parallel, if possible.

  • @rajdippal51
    @rajdippal51 Месяц назад

    Multitasking vs Multiprocessing

  • @geetalohiya8692
    @geetalohiya8692 Месяц назад

    sir please make video on topin web application on protocal because I didn't learn on any kind of video so plz thinking to make it

  • @fandymohammad952
    @fandymohammad952 28 дней назад

    Parallelism is subset of concurrency

  • @hirenpatel6118
    @hirenpatel6118 Месяц назад

    then there is also cooperative and preemptive

  • @oealias5584
    @oealias5584 Месяц назад

    in the 2nd 'concurrent, not parallel', if task A and task B are running in sequence (one after the other) they can't finish at the same time. am i missing something?

    • @Thomas-cr2pt
      @Thomas-cr2pt Месяц назад

      your statement is correct. but you should see it more like this. a has 10 jobs, b has 10 jobs. If you do those alternate you end up done at roughly the same time (for a and b). Thats why the chef making 3 dishes is a good example.

  • @MrAtomUniverse
    @MrAtomUniverse Месяц назад +9

    What software did you use to draw those diagrams ?

  • @3a146
    @3a146 Месяц назад

    Concurrency is a computer to listen multiple users, while parallelism is a user to call multiple computers. The difference is who takes control.

  • @nc8051
    @nc8051 Месяц назад

    Nice

  • @pranavsarang
    @pranavsarang Месяц назад +1

    What if one task depends on another during parallelism. Thanks for the video

    • @KameOuss
      @KameOuss Месяц назад +4

      In this case, I think you have no other choice but to wait for the task to finish

  • @RoyoItakoride
    @RoyoItakoride Месяц назад

    multitasking is concurrency, slavery is parallelism. Probably.
    edit : parallel -> parallelism. i ain't native

  • @Artur_Martins
    @Artur_Martins Месяц назад +2

    01:48 (nitpick) - task 1.2 appears twice on the top.

  • @ripple123
    @ripple123 Месяц назад +1

    nice its funny how many devs still get these confused

    • @mohammedgoder
      @mohammedgoder Месяц назад +1

      Funny that you seem to be one of these devs; considering that he's wrong.
      Concurrent literally means at the same time.

  • @danielnistor5857
    @danielnistor5857 Месяц назад

    123

  • @quang.luu.179
    @quang.luu.179 Месяц назад

    👍👍👍

  • @brianquigley1940
    @brianquigley1940 Месяц назад

    👍 👍 👍 👍