我剛開始學習圍棋。Go 的優勢在于用于處理多個并發連接的 goroutines。有人提到Goroutines 可以被認為是輕量級線程(但實際上不是線程),它們可以增加/縮小堆棧大小,并且它們被多路復用到多個 os 線程中。假設您有 1000 個 goroutine,那么這些 goroutine 將根據 goroutine 的阻塞和等待模式調度到本機操作系統線程?;旧希襾碜?C# 和 Nodejs 背景。我很困惑它與用 C# 實現的 TaskParallelLibrary 有何不同。TaskParallelLibrary 隱藏了創建線程和管理它們的復雜性。您只需啟動一個任務,CLR 就會負責將它們映射到本機線程。在這里,您可以創建數以千計的小任務,這些任務被映射和調度到 OS 線程。但是 TPL 專門解決異步問題。我的問題是 TPL 與 goroutines 有何不同?goroutines 是否使用協程(可暫停函數或?)。TPL 還將異步/系統調用操作多路復用到線程池,甚至 Go 也將系統調用多路復用到線程池。如果我的任何假設是錯誤的,請糾正我。任何人都可以幫助我具體實施的不同之處嗎?為什么 goroutines 聲稱比 TPL 更快?
添加回答
舉報
0/150
提交
取消