PROOF JavaScript is a Multi-Threaded language

Поділитися
Вставка
  • Опубліковано 22 гру 2024

КОМЕНТАРІ • 543

  • @daedalus5070
    @daedalus5070 Рік тому +1560

    I could feel my brain trying to stop me writing what I knew was an infinite loop but I did it anyway. I trusted you Jeff!

    • @ko-Daegu
      @ko-Daegu Рік тому +23

      0:31 concurrency incorporates parallelism
      what you should is asynchronism

    • @lucassilvas1
      @lucassilvas1 Рік тому +74

      @@ko-Daegu who are you talking to, schizo?

    • @hypergraphic
      @hypergraphic Рік тому +4

      me too!

    • @universaltoons
      @universaltoons Рік тому +30

      @@ko-Daegu can I have some of what you're having

    • @lengors7327
      @lengors7327 Рік тому +11

      ​@@ko-Daegu you really thought you are being smart with that remark, didnt you? Only problem is that you are wrong

  • @AlecThilenius
    @AlecThilenius Рік тому +356

    Fun nerd trivia:
    - A single CPU core runs multiple instructions concurrently, the CPU core just guarantees that it will appear AS IF the instructions were run serially within the context of a single thread. This is achieved primarily via instruction pipelining.
    - A single CPU core often executes instructions totally out of order, this is unimaginatively named "Out Of Order (OOO) execution".
    - A single core also executes instructions simultaneously from two DIFFERENT threads, only guaranteeing that each thread will appear AS IF it ran serially, all on the same shared hardware, all in the same core. This is called Hyperthreading.
    And we haven't even gotten to multi-core yet lol. I love you content Jeff, the ending was gold!

    • @ragggs
      @ragggs Рік тому +22

      in the spectre and meltdown era, we like to say “guarantees”

    • @RicardoSilvaTripcall
      @RicardoSilvaTripcall Рік тому +8

      But in a Hyperthreaded systems tasks just do not appear to be executed serially, they actually are executed serially ... the only difference is that the system is going to coordinate the execution of other tasks/threads while waiting for the previous one, that is probably blocked waiting for a I/O response ...
      If you have a 16 core processor with 32 logical processors, it doesn't mean it can execute 32 thread simultaneously ...

    • @ragggs
      @ragggs Рік тому +2

      @@RicardoSilvaTripcall hyperthreads are in many cases parallel by most meaningful definitions, due to interleaved pipelined operations on the cpu, and the observability problem of variable length operations. For an arbitrary pair of operations on two hyperthreads, without specifying what the operations are, and the exact cpu and microcode patch level you can not say which operation completes first even if you know the order in which they started.

    • @AlecThilenius
      @AlecThilenius Рік тому

      @@ragggs Lol! Maybe guarantee* (unless you're Intel)

    • @AlecThilenius
      @AlecThilenius Рік тому

      @@RicardoSilvaTripcall Uhhhh. No. Sorry.

  • @JThompson_VI
    @JThompson_VI Рік тому +99

    Moments like 0:52, the short memorable description of callback functions, is what makes you a great teacher. Thanks man!

    • @kisaragi-hiu
      @kisaragi-hiu Рік тому +1

      Keep in mind the JS world also calls any higher order function "callback" (like the function you'd pass to Array.map), whereas elsewhere afaik it only refers to the function you pass to something non-blocking.

    • @curlyfryactual
      @curlyfryactual Рік тому +2

      ​@@kisaragi-hiu a fact that caused me much grief coming into JS from systems level.

  • @elhaambasheerch7058
    @elhaambasheerch7058 Рік тому +70

    Love to see jeff going in depth on this channel, would love more videos like this one.

    • @beyondfireship
      @beyondfireship  Рік тому +73

      That's why I made this channel. I've got a long list of ideas.

    • @morezco
      @morezco Рік тому +1

      @@beyondfireship wonderful. Keep it up

    • @kg3826
      @kg3826 Місяць тому

      @@beyondfireship then do them! PLEASEEEE

  • @RedlinePostal
    @RedlinePostal Рік тому +250

    Also when we say "one-core," that means "one-core at a *time*" -- computer kernels are concurrent by default, and the program's code will actually be constantly shifting to different CPUs, as the kernel manages a queue of things for the processor to do. Not too unlike the asynchronous system that javascript has, kernel will break each program you're running into executable chunks, and has a way to manage which programs and code get more priority.

    • @orbyfied
      @orbyfied Рік тому +7

      wouldnt that be kind of ineffective though, it wouldnt be able to take full advantage of the CPU cache, so i hope it does it as rarely as possible

    • @invinciblemode
      @invinciblemode Рік тому +18

      @@orbyfieduhh, different CPU cores use the same L2-L3 cache. L1 Cache is per core but they’re small and meant for minor optimisations.

    • @orbyfied
      @orbyfied Рік тому +6

      L1 is the fastest so having data available there is pretty significant. its also grown much in size to the point that it can basically cache all the memory a longer running task will need now. if L1 was so insignificant it wouldn't cause there data desync issues across threads

    • @LettersAndNumbers300
      @LettersAndNumbers300 Рік тому +1

      Then…why do I only see one core active when running simple Python code…?

    • @jesusmods1
      @jesusmods1 Рік тому +3

      ​@@orbyfiedit could be more inefficient if only one process took all the CPU core for himself during all his life time. Probably the process isn't switched between cores, but it is being swaped in and out with others on the same core for the sake of concurrency. Also take in account the hit rate that a cache may have.

  • @WolfPhoenix0
    @WolfPhoenix0 Рік тому +72

    That chef analogy about concurrency and parallelism was genius. Makes it SO much easier to understand the differences.

  • @srejonkhan
    @srejonkhan Рік тому +31

    6:13 To see how all of your cores utilizing, you can change the graph from 'Overall utilization' to 'Logical Processor' just by right clicking on the graph -> Change graph to -> Logical Processor.

  • @ra2enjoyer708
    @ra2enjoyer708 Рік тому +198

    It's a pretty good overview on how much more of a clusterfuck the code becomes once you add workers to it. And it didn't even get to the juice of doing fs/database/stream calls within workers and error handling for all of that.

    • @dan_le_brown
      @dan_le_brown Рік тому +9

      "Clusterfuck", I had the same word in mind 😭😂

    • @ko-Daegu
      @ko-Daegu Рік тому

      0:31 concurrency incorporates parallelism
      what you should is asynchronism

    • @angryman9333
      @angryman9333 Рік тому

      just use Promises, it'll process all your asynchronous functions concurrently (very similar to parallel)

    • @SirusStarTV
      @SirusStarTV Рік тому +12

      @@angryman9333 Promise will run user written function in main thread blocking manner. Async function is just syntactic sugar for easier creation of promises. WIthout browser asynchronous api's or web workers it doesn't run code in parallel mode.

    • @platinumsun4632
      @platinumsun4632 Рік тому

      @@angryman9333a what?

  • @boris---
    @boris--- Рік тому +3

    Task Manager --> Performance tab --> CPU --> Right click on graph --> Change graph to --> Logical Processors

  • @yss64
    @yss64 Рік тому +5

    Thanks for shouting out code with ryan! That channel is criminally underrated

  • @EdgeGaming
    @EdgeGaming Рік тому +1

    Lots of comments about memorable descriptions, shoutout to the thread summary at 3:30. Your conciseness is excellent.

  • @user-fed-yum
    @user-fed-yum Рік тому +3

    That ending was possibly one of your best pranks ever, a new high watermark. Congratulations 😂

  • @BRBS360
    @BRBS360 Рік тому +37

    I'd like to see a video on JavaScript generators and maybe even coroutines.

    • @StiekemeHenk
      @StiekemeHenk Рік тому

      For sure, this is a really cool thing and I'm not sure how to actually use it.

    • @ko-Daegu
      @ko-Daegu Рік тому +2

      generics maybe ?
      garbage collector in more details ?
      benchmarkign agiants pythonic code, just to get people triggered ?

  • @kiprasmel
    @kiprasmel Рік тому +2

    the `threads` package makes working with threads much more convenient. it also works well w/ typescript.

  • @ahmad-murery
    @ahmad-murery Рік тому +28

    It would be nice if you right click on the cpu graph and *Change graph to > Logical Processors*, so we can see each thread separately.
    Thanks!

    • @crackwitz
      @crackwitz Рік тому +1

      less useful than you might think. the operating system's scheduler may bounce a thread around on any number of cores. doesn't make it faster but spreads the utilization around.

    • @ahmad-murery
      @ahmad-murery Рік тому

      @@crackwitz Do you mean that we will not see each core graph plotting one thread?

  • @7heMech
    @7heMech Рік тому +1

    Really cool, I actually saw the other video about nodejs taking it up a notch when it came out.

  • @dzhaniivanov5837
    @dzhaniivanov5837 Рік тому +1

    i watched a similar video early this year, but your way to deliver content is amazing, keep going

  • @timur.shhhhh
    @timur.shhhhh 3 місяці тому +4

    - what could be better than an infinite loop?
    - infinite loop on 16 threads

  • @wjlee7003
    @wjlee7003 Рік тому +5

    although it's called concurrent, schedulers still can only work on one task at a time. It will delegate a certain amount of time to each task and switch between them (context switching). The switch Is just fast enough to make it seem truly "concurrent". If a task takes longer than the delegated time, the scheduler will still switch and come back to it to finish.

  • @Greediium
    @Greediium 10 місяців тому +4

    IM STILL STUCK OVER HERE, HELP!?!?!?!?
    MY PC WONT SHUTDOWN, ITS BEEN 5 MONTH'S...
    keep up the great work, love your vid's!

  • @mrainaandroid8208
    @mrainaandroid8208 5 місяців тому

    This man just explained a lot within 8mins! Getting your pro soon.

  • @nuvotion-live
    @nuvotion-live Рік тому +37

    Little known fact, you can also do DOM related operations on another thread. You have to serve it from a separate origin and use the Origin-Agent-Cluster header, and load the script in an . But you can still communicate with it using postMessage, and avoid thread blocking with large binary transfers using chunking. This is great for stuff that involves video elements and cameras.
    I use it to move canvas animations (that include video textures) off the UI thread, and calculating motion vectors of webcams.

    • @knoopx
      @knoopx Рік тому +1

      that looks handy! thanks for sharing

    • @among-us-99999
      @among-us-99999 Рік тому +1

      that might just help with a few of my projects

    • @matheusvictor9629
      @matheusvictor9629 Рік тому +1

      do you have any examples on github?

    • @nuvotion-live
      @nuvotion-live Рік тому

      @@matheusvictor9629 yes

    • @andrewmcgrail2276
      @andrewmcgrail2276 Рік тому

      Sounds very interesting! I have a project where I think this would be useful.

  • @maxijonson
    @maxijonson Рік тому +7

    My brain: dont run it
    8 years of programming: dont run it
    the worker thread registering my inputs to the console as I type it: dont run it
    Jeff: run it.
    **RUNS IT**

  • @robertjif6337
    @robertjif6337 Рік тому +2

    Thanks, now I know what script I should include in my svgs

  • @AntonisTzorvas
    @AntonisTzorvas Рік тому +1

    aside from the outstanding quality, this ending was quite funny and hilarious! keep it up, your content is TOP 🙇🚀

  • @JeremyAndersonBoise
    @JeremyAndersonBoise Рік тому

    Spawning workers in Node is not new, but support for web workers in browsers is comparatively new. Good shit man.

  • @ko-Daegu
    @ko-Daegu Рік тому

    0:31 concurrency incorporates parallelism
    what you should is asynchronism

  • @MrPman1999
    @MrPman1999 6 місяців тому

    best comic relief at the end ever, love you Jeff

  • @deneguil-1618
    @deneguil-1618 Рік тому +79

    just a heads up for your CPU; the 12900K doesn't have 8 physical cores, it indeed has 16, 8 performance and 8 efficiency cores, the performance cores have hyperthreading enabled but not the efficiency cores so you have 24 threads in total

  • @junama
    @junama Рік тому +16

    Good vídeo!
    Next time change the CPU graph with right click to see each threat graph.
    Hope it helps!

    • @LedimLPMore
      @LedimLPMore Рік тому

      Wow, didn't know that. Thanks!

  • @AchwaqKhalid
    @AchwaqKhalid Рік тому +2

    3:17 Dude the 12900k has 16 physical cores (8p+8e) and a total of 24 threads since only the p cores have hyper-threading ❗

  • @Bell_420
    @Bell_420 11 місяців тому

    the cook analogy was great and i now understand

  • @abhijay_hm
    @abhijay_hm Рік тому +1

    with the amount of time I've spent on this video because of the while loop, even the algorithm knows who my favourite youtuber is

  • @TeaBroski
    @TeaBroski Рік тому +3

    It's like you read my client's requirement and came into support

  • @Quamsi
    @Quamsi Рік тому +36

    I have had hours long lectures in college level programming classes on the differences between concurrency and parallelism and the first 3 minutes of this video did a better job of explaining it. Shout outs to my bois running the us education system for wasting my money and my time 💀

    • @maskettaman1488
      @maskettaman1488 Рік тому +12

      It's probably not their fault you failed to understand something so simple. Literally 1 minute on google would have cleared up any misunderstanding you had

    • @TechBuddy_
      @TechBuddy_ Рік тому

      ​@@maskettaman1488if you have to pay to study and then you have to sell yourself to a tech corp to learn something is not that great of a system and it should not exist IMHO

    • @Quamsi
      @Quamsi Рік тому +7

      @maskettaman1488 lmao im not saying i misunderstood it im saying fireship is much more consice and still gets all the relevant information across compared to college despite the fact that i dont have to pay fireship anything

  • @timschannel247
    @timschannel247 8 місяців тому

    Yes Yes Yes, and exactly extra Yes! Thank you Bro for this contribution! You are speaking out of my brain! Best Regards!

  • @theshermantanker7043
    @theshermantanker7043 10 місяців тому

    3:11 Notice how in that graph, the only languages faster than Java are all systems languages, with no VM based languages capable of beating it

  • @H-Root
    @H-Root Рік тому +94

    I am stuck step programmer 😂😂

  • @hyper_channel
    @hyper_channel Рік тому +8

    a small detail at 3:17 your i9 has 16 physical cores not 8. Only half of them have hyperthreading (because there are 2 types of physical cores in that cpu). That's why it has 24 threads instead of 32

    • @somedooby
      @somedooby Рік тому +4

      I think he just said that so people would comment, increasing the algorithm rizz

    • @hyper_channel
      @hyper_channel Рік тому +1

      @@somedooby I wouldn't be surprised TBH, you certainly can't get that audience so quickly without knowing all the tricks

    • @varianbohling251
      @varianbohling251 Рік тому

      Also right click the cpu graph and choose logical processors to show the threads in individual graphs. Makes it easier to visualize IMHO.

  • @CC1.unposted
    @CC1.unposted Рік тому +1

    0:15 I already know this and already using this
    BLOB to create new Worker and going I use max 4 to 8 as one for each core

  • @AlexEscalante
    @AlexEscalante Рік тому +1

    ¡Wow! Just yesterday I was watching some videos about worker threads because I will use them to speed up the UI in my current development 😄

  • @TonyAlcast
    @TonyAlcast Рік тому

    I'm still amazed at how you find such accurate images as the one at 0:32 🤔

  • @akashrajpurohit97
    @akashrajpurohit97 Рік тому

    6:42 bro really doubled it and gave it to the next thread

  • @HedleyLuna
    @HedleyLuna Рік тому +1

    I did use this back in 2018. I don't know how much it improved, but error handling was painful. Also, when you call postMessage(), v8 will serialize your message, meaning big payloads will kill any advantage you want. And also, remember that functions are not serializable. On the UI, I completely killed my ThreeJS app in production when I tried to offload some of its work to other threads :D
    Apart from that, you should NEVER share data between threads, that's an anti-pattern.

  • @zeta_meow_meow
    @zeta_meow_meow 10 місяців тому

    seeing my cpu throttle and core usage rise in realtime was impresive :)

  • @DumbledoreMcCracken
    @DumbledoreMcCracken Рік тому +1

    each value should be a random value, and you should sum them in the end to ensure the compiler / interpreter does not optimize all the work away because it detected that you never used the values

    • @ra2enjoyer708
      @ra2enjoyer708 Рік тому

      Pretty sure compiler won't be able to optimize side effects like this, since worker and the main thread only interact indirectly through events on message channel.

  • @wlockuz4467
    @wlockuz4467 Рік тому +2

    I thought worker threads were virtual threads. you learn something new everyday!

    • @shimadabr
      @shimadabr Рік тому

      Aren't they? My understanding is that they are threads managed by the runtime, which in turn is responsible for allocating the appropriate amount of real threads on the O.S.

  • @AnwarulIslamYT
    @AnwarulIslamYT Рік тому +1

    JavaScript is referred to high level, single threaded, garbage collected, interpreted || jit compiled, prototype based, multi-paradigm, dynamic language with a, non-blocking event loop

    • @LedimLPMore
      @LedimLPMore Рік тому

      And you can still program with multiple threads... 😂

  • @Bossslime
    @Bossslime Рік тому +1

    I remember when I first learned workers, I didn’t realize k could use a separate js file so I wrote all of my code in a string, it was just a giant string that I coded with no ide help. That was fun.

  • @wusluf
    @wusluf Рік тому

    Adding more cores might still provide gains in a VM scenario depending on the hypervisor. As long a your VM isn't provisioned all physical cores the hypervisor is at liberty to utilize more cores and even up to all physical cores for a short amount of time resulting in increased performance for bursting tasks

  • @Dev-Siri
    @Dev-Siri Рік тому +1

    pro tip: create a loop like this.
    for (let i = 0; i < 2; i++) {
    i--;
    }
    This will make you pass the interview no-more questions asked.

  • @markopolo2224
    @markopolo2224 Рік тому

    man i been wanting something about workers for so long

  • @MegaMech
    @MegaMech Рік тому +1

    A single x86 core can actually run more than one command at a time. And the n64 can run 1.5 commands at a time when it uses a branch delay slot.

  • @gr.4380
    @gr.4380 Рік тому

    love how you tell us to leave a comment if it's locked like we can even do that

  • @DranKof
    @DranKof Рік тому +2

    I tried the while loop thing and somehow my computer became sentient. Y'all should try that out.

  • @eformance
    @eformance Рік тому

    Hyperthreading generally gives a 30% bump in performance, your test demonstrated that handily.

  • @SinanWP
    @SinanWP Рік тому

    7:40 I knew the joke coming from mile away
    nice one 😂😂😂😂

  • @ninjaasmoke
    @ninjaasmoke Рік тому

    people watching on phone:
    “that level of genjutsu doesn’t work on me”

  • @adaliszk
    @adaliszk Рік тому

    You can also pass initial data without needing to message the thread to start working, however, that one I feel like its better to use for initialization like connecting to a database.

  • @tinahalder8416
    @tinahalder8416 Рік тому +28

    In python, handling Race Condition is easy,
    Use Queue, and Lock 😊

    • @dan_le_brown
      @dan_le_brown Рік тому +2

      I achieved something similar in TS, but rather than locking the queue, I ensured that the jobs that could cause a race condition had a predictable unique ID. By predictable, I mean a transaction reference/nonce...

    • @techtutorial9050
      @techtutorial9050 Рік тому +1

      Well multiprocessing is much more mature than workers thread since multiprocessing has been the primary methods for concurrency in python, but for js it’s always been async.

  • @nullternative
    @nullternative Рік тому +5

    I just recently experimented with the Offscreen Canvas handling rendering on a separate worker thread. Pretty cool.

  • @BoloH.
    @BoloH. Рік тому +4

    I once made a volume rendering thingie with Three.JS and it really, REALLY benefited from Web Workers, especially interpolation between Z slices.

    • @xinaesthetic
      @xinaesthetic Рік тому +1

      Hang on… wouldn’t a volume-renderer in three.js be doing things like interpolation between z-slices in the fragment shader? Could certainly see workers being useful for some data processing (although texture data still needs to be pushed to the gpu in the main thread). Care to elucidate? Was it maybe interpolating XYZ over time, like with fMRI data or something? That would certainly benefit…

  • @frankdearr2772
    @frankdearr2772 Рік тому

    great topic, thanks 👍

  • @Xe054
    @Xe054 Рік тому

    Fireship, the "S" sounds in your video sound really harsh. Consider using a de-esser plugin or a regular compressor plugin and your stuff will sound fantastic. Cheers.

  • @Sowagware
    @Sowagware Рік тому

    6:30 Do you want to run() the jobs or double the workers and give it to the next run()?

  • @Zumito
    @Zumito Рік тому +1

    And remember, don't make promises you can't keep

  • @vforsh
    @vforsh Рік тому

    Wow, Love this tick - tock snippet

  • @NoFailer
    @NoFailer Рік тому

    I executed the while-loop on the orange youtube and I couldn't change the volume.... Thanks.

  • @jimbowers1298
    @jimbowers1298 Рік тому +2

    UNLIMITED VIEW TIMES!! AWESOME!! What a great video!

  • @4541047
    @4541047 Рік тому

    You are a youtube genius man

  • @rmlmax
    @rmlmax Рік тому +2

    8:20 my tab is still not responding. What should I do?

    • @timur.shhhhh
      @timur.shhhhh 3 місяці тому

      try throwing it out of the window

  • @mrcjm
    @mrcjm Рік тому

    Ending is the moment you are glad you watched it on a mobile device

  • @JeremyThille
    @JeremyThille Рік тому

    Niiiice we have the exact same machine! (And thanks for the video!)

  • @DanFigueras
    @DanFigueras Рік тому

    Day 5, I'm still stuck with the window open, I tried exit the house and get back in. Rick is still singing.

  • @bruc1555
    @bruc1555 Рік тому +3

    Please help, I have been trapped here for 5 years, the browser still won't let me out.

  • @nagasaipurvaz4251
    @nagasaipurvaz4251 Рік тому

    ahh now i can watch my cat memes at 0.001 ms speed after making javascript multi threaded

  • @threeveloper
    @threeveloper Рік тому +1

    HELP It's been 84 years and I still haven't been able to close my browser

  • @lionbryce10101
    @lionbryce10101 Рік тому +1

    Woulda been cool if you set it to show core usage on taskmgr

  • @subratarudra2745
    @subratarudra2745 Рік тому

    Amazing🔥

  • @jessejayphotography
    @jessejayphotography Рік тому

    Elixir is faster than I thought and getting faster with the new JIT compiler improvements.

  • @jugurtha292
    @jugurtha292 Рік тому

    in 3:11, how is swift that slow, its static and compiled and does not use garbage collection.

  • @BarisPalabiyik
    @BarisPalabiyik Рік тому +1

    Thank you for making me willingly crash my chrome and carrying web dev space on your back for wide audiences.

  • @VileEnd
    @VileEnd Рік тому +1

    Love it, we are already doing that with our Lambdas - cause why not use the vCores when you got them 😍

  • @Rebel101
    @Rebel101 Рік тому

    Epic!
    It's FLAT!

  • @NithinJune
    @NithinJune Рік тому

    i wish you showed the CPU usage on each logical processor on task manager instead of the overview

  • @olharAgudo
    @olharAgudo Рік тому

    Awesome video ending

  • @yassine-sa
    @yassine-sa Рік тому

    That trick to force us to hear the sponsor block could only come from you 🤣🤣🤣

  • @SeanJonesYT
    @SeanJonesYT Рік тому

    It’s been 4 hours and my computer has now caught fire and is playing the interstellar theme song, help!

  • @temhirtleague-chess
    @temhirtleague-chess Рік тому

    Im sure those of us who went through the pain stalking process of closing an infinite loop in our past were saying "who in their right mind would do this?"

  • @joebgallegos
    @joebgallegos Рік тому

    I recently did a little side project where I needed to use a worker in a web app. The gist of the project is given a winning lottery number, how many “quick picks” or random tickets would it take to finally hit.

  • @PlayWithNiz
    @PlayWithNiz Рік тому +1

    I'm thinking out loud here, but have a genuine question - Could you use workers combined with something like husky to do all pre-commit/push/etc checks at once?
    For example, I may have a large unit/integration test suite, followed by a large e2e test suite, along with code quality checks and so on... All of which are ran in sequence potentially taking upwards of a few minutes to complete.
    Could workers be used to run these jobs together at once?

    • @ra2enjoyer708
      @ra2enjoyer708 Рік тому

      E2E will bottleneck regardless, because of quadrillion OS APIs it has to interact on start, majority of them are synchronous.

  • @simple_jonson2240
    @simple_jonson2240 Рік тому

    @1:57, uptime 4:20:00

  • @dandogamer
    @dandogamer Рік тому +1

    Just wanted to point out the memory usage for worker threads is crazy high.

    • @LedimLPMore
      @LedimLPMore Рік тому

      I think because of multiple nodejs runtimes required now, maybe? I don't know...

  • @514-d6w
    @514-d6w Рік тому +1

    Don't need proof I believe you bro!

  • @jack171380
    @jack171380 Рік тому +1

    I wonder if there are things like mutex locks to help with the synchronisations of shared resources?

  • @mateuszabramek7015
    @mateuszabramek7015 Рік тому

    Exactly. I don't know why I keep hearing otherwise

  • @HenokWehibe
    @HenokWehibe Рік тому

    Just brilliant

  • @mohitnagpal
    @mohitnagpal Рік тому +1

    I was asked the same question for an internship interview in 2021 whether js is multi threaded or not and I said yes because of worker threads. The interviewer said no, it is not and hung up the phone :(

    • @ErazerPT
      @ErazerPT Рік тому +1

      Because the answer is not "yes", it's "yes IF". Yes IF the environment supports it. If the interviewer said a terminal "no", it meant "not in our environment". Hanging up without an explanation still makes him an asshole, and trust me, you don't wanna work with those anyway...

  • @dovanminhan
    @dovanminhan Рік тому

    Hi from Vietnam, where the kitchen image was taken.

  • @abdullahzafar4401
    @abdullahzafar4401 4 місяці тому

    On Firefox, only this tab got froze when executing empty while loop true, I refreshed the page and I was good