The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
rachelross

我是一个 golang 的 超级 beginner, 今天遇到一件特别气氛的事情

  •  
  •   rachelross · Jan 4, 2019 · 4718 views
    This topic created in 2859 days ago, the information mentioned may be changed or developed.

    我是一个 golang 的 超级 beginner, 今天遇到一件特别气氛的事情, 我在学习 goroutine, 然后, 翻书查资料, 无意中看到知乎上一片文章, 说有一本 谢孟军的 go web 编程写的特别好, 我新生好奇, 我想说 我好像刚好买了这本书, 但是这本书是新加坡作者啊, 然后我就上网搜了一下谢孟军的这本 go web 编程, 果然确有其书, 而且刚好还有在线阅读, 我就想说看看这位大神对 goroutine 的讲解, 我去, 不看还好, 一看, 我就觉得好气, 居然开篇就把 "并发" 说成是 "并行", 我这个还没入门的菜鸟都知道这是 go 作者特别强调的地方, 还特意加以区分, 就怕大家搞混了, 结果此人都已经出书了, 居然还能出这种错误, 除此之外, 书中还有些其他的概念误导, 我真的无言以对, 不知道是大神本身就不懂呢, 还是觉得出书好玩呢, 对于我们这些小白, 有多重视这些大神的作品, 结果确是这样, 这是好在我之前就对此有概念, 要是一上来就看这书呢, ...... 实在心中郁闷, 吐槽一下了

    24 replies  •  2019-01-22 15:00:05 +08:00
    feiyuanqiu
    feiyuanqiu
    Jan 4, 2019 via Android❤️1
    1
    语文课还是很重要的
    loading
    loading
    Jan 4, 2019 via Android
    2
    那本是我买了最后悔的书。
    orangeade
    orangeade
    Jan 4, 2019 via Android❤️1
    3
    go 语言特性又不复杂,学习路径:优先官方文档和教程,然后看开源项目和英文书籍
    weyou
    weyou
    Jan 4, 2019 via Android❤️3
    4
    先把气氛和气愤弄清楚再吐槽并发和并行吧
    nekoyaki
    nekoyaki
    Jan 4, 2019
    5
    ……不知道你说的原文是什么,不过落到具体的 goroutine 机制上,多个 gorotine 具有并发能力,在多核服务器上也是能够实现并行的。
    要么你贴原文出来看看?
    shiny
    shiny
    PRO
    Jan 4, 2019
    6
    一个句号也没有,服气服气。
    rachelross
    rachelross
    OP
    Jan 4, 2019
    7
    @orangeade 嗯嗯, 多谢指点
    rachelross
    rachelross
    OP
    Jan 4, 2019
    8
    @nekoyaki 原文如下: goroutine 是 Go 并行设计的核心。goroutine 说到底其实就是协程,但是它比线程更小,十几个 goroutine 可能体现在底层就是五六个线程,Go 语言内部帮你实现了这些 goroutine 之间的内存共享。执行 goroutine 只需极少的栈内存(大概是 4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine 比 thread 更易用、更高效、更轻便。
    nekoyaki
    nekoyaki
    Jan 4, 2019
    9
    @rachelross
    ……我觉得他这句话说得没问题
    wph95
    wph95
    Jan 4, 2019
    10
    Concurrency is about dealing with lots of things at once.
    Parallelism is about doing lots of things at once.
    -- Rob pike
    Concurrency -> 并发
    Parallelism -> 并行

    所以说原文没毛病
    lxml
    lxml
    Jan 4, 2019
    11
    @rachelross 成千上万个并发任务,好像没啥问题啊,成千上万个并行怎么可能才几个线程。
    wph95
    wph95
    Jan 4, 2019
    12
    上面可能说的武断了,凭记忆这么说应该没毛病
    得去复习一下
    了
    rachelross
    rachelross
    OP
    Jan 4, 2019
    13
    @wph95 Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. 从以上官方文档中, 我理解 "goroutine 是 Go 并行设计的核心" 这句话就是错误, 至少是误导. maybe, 我还太菜了, 我实在难以理解.
    cz000
    cz000
    Jan 4, 2019
    14
    原文说的没问题啊,多核就是并行,go 就是为了多核处理设计的。上万个并发任务也没问题啊。
    misaka19000
    misaka19000
    Jan 4, 2019
    15
    并发还是并行看你的 CPU 有多少个核,只能说作者说的不严谨,但觉得不是错误的
    goophy
    goophy
    Jan 4, 2019 via iPhone
    16
    理解概念,中英双读,学编程语言不能去咬文嚼字
    junjieyuanxiling
    junjieyuanxiling
    Jan 4, 2019
    17
    https://zh.wikipedia.org/wiki/%E6%A8%A1%E5%9D%97:CGroup/IT#C

    都别扯了,丫的地区词转换没做(好)。你们是不是看到快取也要喷一顿啊?
    nekoyaki
    nekoyaki
    Jan 4, 2019
    18
    @rachelross
    1+1=2 是对的,1+1 !=3 也是对的,你为什么非要因为教科书上写了 1+1=2 就认为别人说 1+1 不等于 3 是错的呢……
    junjieyuanxiling
    junjieyuanxiling
    Jan 4, 2019
    19
    在 #17 的链接里搜 concurrency。
    wph95
    wph95
    Jan 4, 2019
    20
    @rachelross
    &t=550s 这个视频非常推荐看看

    锅在 ”并行设计“ 是什么? 查不到这种说法

    我的理解是 goroutines 是 golang runtime,golang scheduler 的单位,从而并行。


    // 反正感觉也是牵强
    loveCoding
    loveCoding
    Jan 4, 2019
    21
    一句话的事情你扯那么,分下段落也好啊
    wweir
    wweir
    Jan 5, 2019 via Android
    22
    本来就是为并行设计的,这一块在设计、宣传的时候,一直是拿 C/C++ 做对比的,因为在 C/C++ 写一个安全的并行程序比 Go 中困难很多。
    高并发只是 goroutine 这种实现方式所附带的特性。就业界普遍观点而言,真正追求极致并发能力的场景,简单使用 goroutine 并不是合适的方案
    reus
    reus
    Jan 7, 2019
    23
    别看,垃圾书
    KgM4gLtF0shViDH3
    KgM4gLtF0shViDH3
    Jan 22, 2019
    24
    Go is the name of the language.
    golang.org is the name of the Website.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4011 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 00:54 · PVG 08:54 · LAX 16:54 · JFK 19:54
    ♥ Do have faith in what you're doing.