Goroutines: Under the Hood | Vicki Niu | Go Systems Conf SF 2020

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 20

  • @Gigasharik5
    @Gigasharik5 หลายเดือนก่อน +2

    absolute cinema

  • @Rohinthas
    @Rohinthas 3 หลายเดือนก่อน +1

    This has become a regular refresher watch for me, the presentation style really works for me!

  • @rocknroll7967
    @rocknroll7967 8 หลายเดือนก่อน +1

    Thank you so much Vicki ! I could not find any resource which explains go routines in detail

  • @RobertFletcherOBE
    @RobertFletcherOBE 3 หลายเดือนก่อน +1

    This is really informative. Nice job

  • @myrachoantonio8832
    @myrachoantonio8832 ปีที่แล้ว +4

    wow I must confess that thats was a little weird intro of how you spent your free time , but it got me thinking that - maybe thats how geniuses spend their free time - coz honestly this material is awesome thank you very much!

  • @setkyarwalar
    @setkyarwalar 4 หลายเดือนก่อน

    Thank you ကျေးဇူးတင်ပါတယ်။

  • @larditard
    @larditard ปีที่แล้ว

    This was a fantastic video, thank you!

  • @Fardin.Alizadeh
    @Fardin.Alizadeh ปีที่แล้ว +1

    nice and concise!

  • @Rohinthas
    @Rohinthas 5 หลายเดือนก่อน

    that was really helpful, thanks!

  • @andreypanin3096
    @andreypanin3096 2 หลายเดือนก่อน

    The animation is awesome, but the overall impression of the presentation is that it's a bit shallow. For example, aren't networking calls system calls? They are. How does a `g` gets unblocked after a syscall? By itself or with a help from the scheduler? Also, you said shrinking of a stack is easy, but if we borrowed a continuous region of memory from the heap, we can't simply ask the OS to reduce its size to match the new stack, can we?

    • @xv2beta999
      @xv2beta999 หลายเดือนก่อน

      Networking calls are system calls, but if you use i.e net/http, go will manage these in a separate component net-poller, it is a interface, which is important, because the implementation of how net-poller will unblock a 'g' will depends on the actual O.S it is running.

  • @NguyenTuan-ek1pv
    @NguyenTuan-ek1pv 2 ปีที่แล้ว +1

    Hi, why does Goroutine needs an OS thread to run on?
    Can it run without OS thread?
    Thank you.

    • @chriszhang8365
      @chriszhang8365 2 ปีที่แล้ว +3

      All code needs to be put in cpu to run. Go routine is a higher level concept than OS thread. From low level to high level: CPU => Processes => OS Threads => go runtime => Goroutines

    • @NguyenTuan-ek1pv
      @NguyenTuan-ek1pv 2 ปีที่แล้ว

      @@chriszhang8365 so does goroutines stack and os stack has anything to do with each other
      I'm still confused how they are combined
      It's great if you can give me some references
      Thanks for your reply

    • @esra_erimez
      @esra_erimez 10 หลายเดือนก่อน

      @@chriszhang8365 The importance of this reply cannot be overstated.

    • @bjj-and-cpp
      @bjj-and-cpp 7 หลายเดือนก่อน

      @@NguyenTuan-ek1pv The OS scheduler needs a stack for any thread that it is running. It is alot of memory though (like 2MB).
      The Go runtime scheduler also has a stack for every goroutine. But the scheduler keeps alot of the context for threads in the runtime memory, so that goroutine stacks are really small (like 2KB)

  • @taintedmind3033
    @taintedmind3033 2 ปีที่แล้ว +1

    i fell i love...

    • @faeancestor
      @faeancestor ปีที่แล้ว +5

      strange comment

    • @brinckau
      @brinckau 10 หลายเดือนก่อน +4

      I fell in love with goroutines too, they are really great!

    • @esra_erimez
      @esra_erimez 10 หลายเดือนก่อน +1

      Creepy