Asynchronous vs Multithreading and Multiprocessing Programming (The Main Difference)

  Рет қаралды 154,584

Hussein Nasser

Hussein Nasser

4 жыл бұрын

In this video, I explain the main difference between asynchronous execution, multithreading and multiprocessing programming. There are advantages and disadvantages of each approach.
* Synchronous 0:30
* Multithreading a process have many threads shared resources 3:20
* Async io single thread 6:00
* Multiprocessing 11:00
Threads are evil
web.stanford.edu/~ouster/cgi-...
🏭 Software Architecture Videos
• Software Architecture
💾 Database Engineering Videos
• Database Engineering
🛰 Network Engineering Videos
• Network Engineering
🏰 Load Balancing and Proxies Videos
• Proxies
🐘 Postgres Videos
• PostgresSQL
🚢Docker
• Docker
🧮 Programming Pattern Videos
• Programming Patterns
🛡 Web Security Videos
• Web Security
🦠 HTTP Videos
• HTTP
🐍 Python Videos
• Python by Example
🔆 Javascript Videos
• Javascript by Example
👾Discord Server / discord
Support me on PayPal
bit.ly/33ENps4
Become a Patreon
/ hnasr
Stay Awesome,
Hussein

Пікірлер: 233
@hnasr
@hnasr 2 жыл бұрын
Get my Fundamentals of Networking for Effective Backends udemy course Head to network.husseinnasser.com for a discount coupon (link redirects to udemy with coupon applied)
@LordErnie
@LordErnie 2 жыл бұрын
Man you should start a podcast for this stuff, just put some of it on spotify for us to listen to it in the background. You are so good at explaining these things in such a casual way that you are kinda having a conversation rather then just explaining, thats a real skill. Would love some of this on spotify to listen to while just cleaning up and stuff.
@venkyman4985
@venkyman4985 3 жыл бұрын
Him: does anyone even print stuff these days The books behind him: ...
@hnasr
@hnasr 3 жыл бұрын
You got me
@ahmedmalakai9753
@ahmedmalakai9753 2 жыл бұрын
You probably dont care at all but does anyone know of a trick to get back into an Instagram account..? I was dumb forgot the password. I would appreciate any assistance you can give me!
@hacker64xfn99
@hacker64xfn99 2 жыл бұрын
@@ahmedmalakai9753 If u still did not get back to ur account, it is as simple as clicking forget the password and that will send an email to ur gmail and then create new one for that instagram account !
@emonymph6911
@emonymph6911 2 жыл бұрын
@@hacker64xfn99 dude probably forgot his youtube account as well lol
@aadityarane3464
@aadityarane3464 3 жыл бұрын
This is what they always told me at work, understand the basics, understand the basic.. and here I am always ended up getting confused in basic. And back to ur channel to relearn all those things
@yaBoyDreamer
@yaBoyDreamer 3 жыл бұрын
I loved this explanation! You might consider doing a podcast when you just chill by yourself or with a guest and start off from some technical subject but treat it casually and with lots of everyday examples, just like you did in this clip. New sub from me and keep it up! :D
@hnasr
@hnasr 3 жыл бұрын
dreamer ❤️ thank you for the suggestion ! Appreciate it and welcome to the channel!
@yaBoyDreamer
@yaBoyDreamer 3 жыл бұрын
@@hnasr Glad to be a member of this community!
@rouabahoussama
@rouabahoussama 3 жыл бұрын
@Hussein Nasser I would love to know your opinion about goroutines (Golang) and erlang process
@goregeway8287
@goregeway8287 3 жыл бұрын
I clicked the thumb up button after I watched the whole video, and I ended up given all video I've been watched a thumb up in this channel, thank you Hussein!
@hnasr
@hnasr 3 жыл бұрын
jiaojie wei thumbs up to you dear 👍 and much love ❤️ thanks for your comments glad you enjoyed the content
@_0_o_924
@_0_o_924 Жыл бұрын
I don't think anybody can explain it in a more better way . Thank you
@kez99
@kez99 3 жыл бұрын
i'm thankful to the people who suffered through callback hell
@centurion3708
@centurion3708 3 жыл бұрын
I just realized you've got a ps2 on the background, so many good memories of that console
@th3h0tpegla35
@th3h0tpegla35 2 жыл бұрын
I love your explanations and as someone who is trying to become a backend engineer, I think your channel is a gold mine of useful information. Keep up with awesome videos!
@BangMaster96
@BangMaster96 3 жыл бұрын
Thanks to the geniuses who made coding so easier for us newbies in the 21st century. Imagine, having to code back in the 70's or 80's, with no software like VS Code that can color code your text, auto complete lines of code, spin up the compiler/interpreter with just a click of a button, handles the communication with the OS, does syntax error check, etc. All we have to do is just know how to and what to code.
@hellowill
@hellowill 2 жыл бұрын
The systems we build now are much more complex 😉
@avg_user-ty2eg
@avg_user-ty2eg Жыл бұрын
@@hellowill aah yes the code monkeys making another useles webapp
@mustafayldrm285
@mustafayldrm285 2 жыл бұрын
Hussein the way you express yourself echoing in my mind. I like your passion and professional attitude which are seen rarely together man. True engineer
@hnasr
@hnasr 2 жыл бұрын
Thank you Mustafa for the kind words dear ❤️
@anthonypark9158
@anthonypark9158 2 жыл бұрын
You're a really good teacher. I admire your talent sir!
@avalon2199
@avalon2199 2 жыл бұрын
Clear and concise explanation, proof that we don't need beautiful architecture drawings when concepts are clear.
@ravisomvanshi1072
@ravisomvanshi1072 3 жыл бұрын
First time I felt myself laughing at a programming tutorial/explanation. Thank you for this video!
@simplefinance5165
@simplefinance5165 2 жыл бұрын
Love all your videos, specially about soft skills and motivation one. There are times when I get lost and watching these videos again put me on track and keep going.
@tljstewart
@tljstewart 2 жыл бұрын
Loved this video, the last half of this video could definitely make a great series on ways to use multiprocessing!
@siddheshswnt
@siddheshswnt 2 жыл бұрын
I just can't stop watching your videos man .... Keep them coming !
@hnasr
@hnasr 2 жыл бұрын
Thanks! Enjoy 😊
@liquidpebbles
@liquidpebbles 3 жыл бұрын
Man, I love the enthusiasm you bring to the field!
@sjitghosh
@sjitghosh 2 ай бұрын
excellent approach & good humor to explain complex topics in a simpler way.
@hassanhammoud754
@hassanhammoud754 2 жыл бұрын
This is great man, I like your style of teaching! I kind of revise this topic once in a while and I'm going to bookmark this video so I revisit it later on.
@raivatshah7781
@raivatshah7781 3 жыл бұрын
Very informative and intuitive explanation! Thanks so much
@anzwertree
@anzwertree 2 жыл бұрын
This dude rocks. He talks in a way I can understand, and he's not boring.
@hasanweb
@hasanweb 9 ай бұрын
The most amazing, funny, useful. programming information video without coding I have ever seen until now. Amazing brother.
@shahbazzaidi650
@shahbazzaidi650 3 жыл бұрын
This was really helpful, informative and to the point. Thanks !
@ahmeddaraz8494
@ahmeddaraz8494 4 жыл бұрын
multithreading languages tend to solve the problem by introducing reactive programming, Java did this after the community introduced some technologies like RxJava. and it is very power to combine both in the language echo system. however hard to perceive from the first glance. Great video buddy, all my wishes to you.. keep up bro
@hnasr
@hnasr 4 жыл бұрын
Ahmed Daraz thanks Ahmed for the insights! Well said
@maedehshahabi4744
@maedehshahabi4744 Жыл бұрын
Thank you very much Hussein, that was a clear explanation.
@QVL75
@QVL75 2 ай бұрын
I love your explanations! Excellent food for thoughts.
@sajad2126
@sajad2126 Жыл бұрын
Amazing video, finally i learned this topic.
@amankapoor7665
@amankapoor7665 2 жыл бұрын
Amazing explanation. Really cleared a lot of doubts.
@joshuahampl
@joshuahampl 7 ай бұрын
this is the first time I smiled the whole way through a technical video :)
@icbm7
@icbm7 3 жыл бұрын
Great video, as usual. To summarize: if your app is "i/o bound" (e.g. reading data from a db, and sending it back) then use the asynchronous model (like NodeJS). If you are doing something "cpu bound" (e.g. video processing or cracking passwords) then use something supports subprocesses and channels (like golang).
@thatoneuser8600
@thatoneuser8600 2 жыл бұрын
What do you mean by "and sending it back"? Unlike in real life, data can be in two places at once, so there's no need to send anything back
@minkymoo5773
@minkymoo5773 2 жыл бұрын
You are such an amazing teacher!!!! I actually kind of understand this now, thanks so much!😍
@tahirraza2590
@tahirraza2590 2 жыл бұрын
loved the explanation - simple and concise
@rohanmainali9040
@rohanmainali9040 Жыл бұрын
Hey Hussain, Thanks for clearing all the doubts and great explanation, absolutely loved it♥️ especially the event loop 🙂
@joepreludian
@joepreludian 7 ай бұрын
Very nice explanation! Thank you for this video!
@dharshan117
@dharshan117 Жыл бұрын
Thanks Hussein for this content. Keep the good work going.....
@ahmedghallab5342
@ahmedghallab5342 8 ай бұрын
جزاك الله خيرا ❤️ Thanks
@kevon217
@kevon217 8 ай бұрын
Great intuitive explanation !
@leoniemargetich3062
@leoniemargetich3062 3 жыл бұрын
This is hilarious! Please make a podcast - i'd love to wake up to you talking about any programming related topic haha XD
@hnasr
@hnasr 3 жыл бұрын
❤️ anchor.fm/hnasr
@jaswalankit5494
@jaswalankit5494 3 жыл бұрын
Well, The best explanation I see in my whole life, till today
@user-jf3gr2ht3s
@user-jf3gr2ht3s 2 жыл бұрын
Good Explanation!Finally understand these concept quick and good.
@jrdtechnologies
@jrdtechnologies Жыл бұрын
Excellant explanation, very engaging and concise!
@naimulmushfiq1390
@naimulmushfiq1390 Жыл бұрын
This explanation was something else..... Thanks man!!!!!
@mariometushev4563
@mariometushev4563 Жыл бұрын
Very very good explanation, congratulations!
@sundaramjha1776
@sundaramjha1776 4 жыл бұрын
Like to see u have very less subscriber, but still u r no bother about it.. u just share very unique knowledge on this channel. Which i have never find on other channel. Thank You, keep continue. sharing is caring.
@KeplerEmeritus
@KeplerEmeritus 2 жыл бұрын
This was a good watch. I think I see single-threaded async behavior differently now. I am now also very interested in process interop now. Most of all, I have a weird urge to try working with multiple asynchronous single-threads at the same time.....
@IvanStipic_Stiiv
@IvanStipic_Stiiv 3 жыл бұрын
Keep up the great work, man!
@wafleez0r
@wafleez0r 3 жыл бұрын
welp i just got addicted to this channel i guess
@azizulhakim1534
@azizulhakim1534 2 жыл бұрын
Best explanations ever.
@christianorlandoibarragarc3904
@christianorlandoibarragarc3904 2 жыл бұрын
Nice explanation man, You have 1 new subscriber 👍👍👍
@mostafaelgablawy164
@mostafaelgablawy164 2 жыл бұрын
thank you so much for this good explanation
@romantsyupryk3009
@romantsyupryk3009 3 жыл бұрын
Thanks so much for this video tutorial.
@swathidesai
@swathidesai 3 жыл бұрын
I guess proxies interest you more than anything (They come up at least once in every video of yours) !!!..Btw, I am a fan, and Thank you for the great content
@neuro5261
@neuro5261 2 жыл бұрын
I think you can mix asynchronous and multiprocessing. I did something like that with fastapi using asynchronous functions and a Procfile with different microservices running on different ports
@jojojawjaw
@jojojawjaw 3 жыл бұрын
GREAT TUTORIAL! thank you
@sfsf285
@sfsf285 3 жыл бұрын
Awesome video, thanks man.
@pikachuverun2062
@pikachuverun2062 Жыл бұрын
Wow, buddy, it is an amazing explanation. You are awesome!
@vanshthukral5477
@vanshthukral5477 Жыл бұрын
Thanks for creating amazing content..✨
@mohitdahiya3102
@mohitdahiya3102 2 жыл бұрын
Nice explanation !!
@socksincrocks4421
@socksincrocks4421 2 жыл бұрын
Thanks Nasser. Just getting my feet wet with programming, python, turbo_flask, and threading. I appreciate your explanation.
@faadi4536
@faadi4536 2 жыл бұрын
Hey Bro. I've been following your videos to understand the basic concepts of Infrastructure and your explanation is amazing, and I have a couple of questions for you if you would like it to clarify for me. In synchronous communication, you mention that when a single process starts, it has a single thread that it uses to trigger the instructions and just wait there for the data but the same thread can be used to spin up multiple threads to execute other processes and get the results but at the backend, they use the same threaded. So it's like a highway tunnel for all other shortcuts and every thread is getting different results and passing back the result in the highway to the processes. Our main thread is not blocked as multiple results are coming back and we are executing the multiple processes over a single thread. I think it's not as evil as you think it is as it is also a form of asynchronous transmission. We are not letting our thread sit idle but rather triggering multiple processes over a single channel and waiting for the callback and the thread is busy working for other processes. Isn't this the same idea behind asynchronicity? if yes, then how we do differentiate between asynchronous and a multi-threaded process as both use the same single thread? Of-course the method is different for both but at the core, isn't both are using the same principles? I would really love your feedback over this and correct me if I am wrong about it as this is how I understood your multi-threading explanation.
@RyanFriedman36
@RyanFriedman36 Ай бұрын
He sort of explains that the motivation for async in a language like JavaScript is to provide similar functionality to multi-threading without forcing the coder to be responsible for ensuring the resources that the multi-threaded process share are used correctly. This makes developing responsive UIs much easier as developers don't have to think about multiple threads, just the single thread and managing async calls. I think there are some helpful illustrations in this video kzbin.info/www/bejne/pZ28lZVmecl6qq8&pp=gAQBiAQB If you read through the comments there's a great explanation on multiple threads trying to access the same memory that is allocated to the parent process. It essentially says that a process is allocated a set amount of memory (in simple terms basically think of it as an array). If multiple threads happen to try to write data to the same index in that 'array' of memory (because the programmer was not clever enough to avoid this) you now have unpredictable/unsafe behavior for the rest of the execution of the process because one thread is expecting one value and the other is expecting a different value. There are certainly other real-world use cases for multi-threaded applications, they seem to be related to much lower-level programming (lower meaning closer to the hardware)
@bhavyaagrawal4050
@bhavyaagrawal4050 3 жыл бұрын
Very good explanation.. Don't know why so less thumbs-up
@Abdullah-zc1uy
@Abdullah-zc1uy 3 жыл бұрын
I agree, multithreading is hard to code but it's worth doing especially if you combine it with asynchronous execution you will have the most responsive, memory-efficient application I'll go with multiprocessing only when execute a rarely use case with heavy logic
@dayvidkelly7683
@dayvidkelly7683 2 жыл бұрын
Good video, I've a question about processing. let's say I've a node js code that sends some processing intensive calculation to another language for example python, will it run on another thread?
@ahmedembaby8230
@ahmedembaby8230 2 жыл бұрын
عظمة كل عام وانتم بخير يا هندسة
@abdelrhmanahmed1378
@abdelrhmanahmed1378 3 жыл бұрын
Amazing as always ❤
@oah8465
@oah8465 3 жыл бұрын
Fantastic explanation. I sense some nginx prior tinkering which got you into this stuff. If you take a deep dive on the read modes async io, direct-io your audience will get much more value. Bravo and keep them coming.
@AlvaroALorite
@AlvaroALorite 3 жыл бұрын
Thank you for this video!
@newtonsarr1234
@newtonsarr1234 3 жыл бұрын
Amazing explanation !!!
@sauravdeb7412
@sauravdeb7412 3 жыл бұрын
A technical Craig Ferguson! Loved it.
@deeepzzz
@deeepzzz 2 жыл бұрын
Hey Hussein, great talk! and thank you for the detailed basics which actually I missed learning (I guess I was on leave on those classes :D) Is multiprocessing possible in NodeJS ? and how?
@amananurag07
@amananurag07 2 жыл бұрын
cluster i guess
@UpupaAfricana
@UpupaAfricana 4 жыл бұрын
Your videos are super great! But I prefer the one with graphics and drawings, because I can understand and memorize better informations
@hnasr
@hnasr 4 жыл бұрын
Lahdili Zuhir thanks! I agree with you too. I am experimenting with different formats. And i want mix both drawing and talking head 🗣👍
@livesamarth
@livesamarth 3 жыл бұрын
Yes exactly
@The8merp
@The8merp 3 жыл бұрын
@@hnasr Even Khan Academy style drawings are good or even basic white board. I feel when things are explained with visuals and the key points are written down then it's easier to absorb the information
@ganeshniranjan895
@ganeshniranjan895 5 ай бұрын
which one of the above is better and faster in terms of for performing operations on pandas dataframe & insert those into multiple tables of a database, can anyone please guide me on this
@yashgaur9619
@yashgaur9619 3 жыл бұрын
Imagine him being your mentor! Freakn amazing,
@girishfury2630
@girishfury2630 4 ай бұрын
smooth explanation .. 5 star
@rohitbaisane6712
@rohitbaisane6712 2 жыл бұрын
Does i/o controller need different thread if yes then asynchronous == mulithreading?
@miltonbaltodano7931
@miltonbaltodano7931 2 жыл бұрын
Nice video! Greeting from Costa Rica
@RobertTheUser
@RobertTheUser 2 жыл бұрын
So... going with your recommendation of multiprocessing... how do you accomplish that in C#? do you have a video on that?
@osamaa.h.altameemi5592
@osamaa.h.altameemi5592 3 жыл бұрын
As usual fantastic video Hussein but in multi-processing we have to go with IPCs and the like and we will lose the shared memory space (which exists in multi-threading) among the threads. That is one key need in problems that involve high real-time update-rate. I see what you are saying about the locks and all the headache that comes with them and you nailed it there.
@hnasr
@hnasr 3 жыл бұрын
Well said Thanks Osama, good points, one slight addition; you can have shared memory between different processes (postgres is an example) of course you have the same trouble of managing the shared memory
@osamaa.h.altameemi5592
@osamaa.h.altameemi5592 3 жыл бұрын
@@hnasr you got it right Mr. I usually go with Redis for more or less and have all my global "shared" variables there. If you are aware of faster alternatives, I am all in. Thx again.
@osamaa.h.altameemi5592
@osamaa.h.altameemi5592 3 жыл бұрын
@@hnasr what do you think of green-threads used in Go and all the collaborative scheduling that comes with them. I am planning on taking a deep dive there once we deliver the current project.
@hnasr
@hnasr 3 жыл бұрын
Not familiar with Go but heard really good things how Go was built for networking and threading in mind to make it really easy
@osamaa.h.altameemi5592
@osamaa.h.altameemi5592 3 жыл бұрын
@@hnasr There is one fantastic talk i recall watching I guess in 2018, it is called the "way of Go" or the "why of Go", highly recommended.
@parasarora5869
@parasarora5869 3 жыл бұрын
Great explanation sir. I like the idea of multiprocessing !!! though never used :p
@nachoeigu
@nachoeigu 2 жыл бұрын
Wow amazing content and very entertainment. Thank you very much
@dorbenmoyal7639
@dorbenmoyal7639 2 жыл бұрын
Great explanation 👌🏼
@dexteraparicio6808
@dexteraparicio6808 Жыл бұрын
In your explanation of asynchronous non-blocking flow while waiting for an I/O response, the single-threaded flow does not wait and continues to go on. If the one and only thread did not block and it continues to go on, how is the I/O response got detected? Does it spawn another thread to detect the I/O response? Or does is the one and only thread doing context switching back and forth?
@hnasr
@hnasr Жыл бұрын
A good example is nodejs, it is a single thread that does an event loop. The thread sends to IO request and moves on to do something else, then it comes back to check if it got a response (polling) the OS. It gets complicated depending on the type of async io the OS supports. Recent linux io_uring is a game changer. This video might clarify kzbin.info/www/bejne/nX7XlJuIpMl2aKs
@Rezthm
@Rezthm 2 жыл бұрын
So good explaination ❤️
@rouabahoussama
@rouabahoussama 3 жыл бұрын
@Hussein Nasser I would love to know your opinion about Golang (goroutines) and Erlang ( process ), and about node I think that it is a master - workers model the master is the app thread and workers are those who do the job behind the scenes. Thank u for the video
@masibhai339
@masibhai339 3 жыл бұрын
I love to watch your videos, they are very informative. You could start a facebook group or slack group and ask people to join it.
@chafzal8929
@chafzal8929 Жыл бұрын
best explanation!
@rohitsagar9011
@rohitsagar9011 3 жыл бұрын
so can we make any code asynchronus or mulithreading or it depends on the language or i did not understand whatever u said?
@nishatnasir7991
@nishatnasir7991 3 жыл бұрын
Best teacher.
@mhmdshaaban
@mhmdshaaban 3 жыл бұрын
Any recommendation for good resources about the operating systems.
@xybersurfer
@xybersurfer 2 жыл бұрын
i suspect that some implementations of async & await use multithreading. nice video
@igbana
@igbana Жыл бұрын
I did it.... Syntactical sugar😂😂... I love your explanation man.... We are the new generation where we don't write multithreading or async code, we IMPORT libraries to do it for us😂✌️
@urounofficial1232
@urounofficial1232 Жыл бұрын
One of the best explanations i have ever seen on these concepts... I have a doubt sir, sorry this seems like a silly question but how does Node.js use multicores in CPU as it is single threaded? ...does it use only one core 😅?
@codeaddicted5602
@codeaddicted5602 Жыл бұрын
Amazing stuff
@robinz7937
@robinz7937 2 жыл бұрын
That's so funny explanation. Thank you
@orion.5611
@orion.5611 Жыл бұрын
so a process is memory allocated to the program during execution
@davida.7586
@davida.7586 3 жыл бұрын
Super explanation!
@hnasr
@hnasr 3 жыл бұрын
David A.
@user-gz2yn9zr2y
@user-gz2yn9zr2y 2 жыл бұрын
thank you
@ehza
@ehza 11 ай бұрын
Thanks!
@rodrigolabrador2745
@rodrigolabrador2745 3 жыл бұрын
Hahaha the asynchronous unordered list on the 15 first seconds, nice touch 😂
Python Threading Explained in 8 Minutes
8:39
NeuralNine
Рет қаралды 124 М.
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Brawl Stars
Рет қаралды 13 МЛН
Китайка и Пчелка 4 серия😂😆
00:19
KITAYKA
Рет қаралды 3,6 МЛН
Купили айфон для собачки #shorts #iribaby
00:31
ELE QUEBROU A TAÇA DE FUTEBOL
00:45
Matheus Kriwat
Рет қаралды 36 МЛН
AWS IAM Core Concepts You NEED to Know
21:40
Be A Better Dev
Рет қаралды 189 М.
Jim Keller: Arm vs x86 vs RISC-V - Does it Matter?
10:11
TechTechPotato: Clips 'n' Chips
Рет қаралды 82 М.
What is RPC? gRPC Introduction.
6:09
ByteByteGo
Рет қаралды 454 М.
Multithreading in Java Explained in 10 Minutes
10:01
Coding with John
Рет қаралды 874 М.
Uncle Bob’s SOLID Principles Made Easy 🍀 - In Python!
19:09
ArjanCodes
Рет қаралды 283 М.
Functional Programming & Haskell - Computerphile
9:19
Computerphile
Рет қаралды 658 М.
Node.js is a serious thing now… (2023)
8:18
Code With Ryan
Рет қаралды 627 М.
C# Async Await Mistakes | Part 1
10:19
Amichai Mantinband
Рет қаралды 29 М.
Understanding How Vector Databases Work!
12:25
The ML Tech Lead!
Рет қаралды 5 М.
Где раздвижные смартфоны ?
0:49
Не шарю!
Рет қаралды 759 М.
Мечта Каждого Геймера
0:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 555 М.
Интереснее чем Apple Store - шоурум BigGeek
0:42
Main filter..
0:15
CikoYt
Рет қаралды 2,7 МЛН
WWDC 2024 - June 10 | Apple
1:43:37
Apple
Рет қаралды 10 МЛН
ПРОБЛЕМА МЕХАНИЧЕСКИХ КЛАВИАТУР!🤬
0:59
Корнеич
Рет қаралды 3,8 МЛН