golang

Go channel与锁

不同 goroutine 之间如何通讯?有两种方案:
1. 全局变量的互斥锁
2. 使用管道 channel 来解决
因为没有对全局变量 m 加锁,因此会出现资源争夺问题,代码会出现错误,提示 concurrent map writes

var (
    myMap = make(map[int]int, 10)
    lock sync.Mutex
)

func test(n int) {
    res := 1
    for i := 1; i <= n; i++ {
        

go tcp编程

网络编程有两种:
1) TCP socket 编程,是网络编程的主流。之所以叫 Tcp socket 编程,是因为底层是基于 Tcp/ip 协议的。比如: QQ 聊天
2) b/s 结构的 http 编程,我们使用浏览器去访问服务器时,使用的就是 http 协议,而 http 底层依旧是用 tcp socket 实现的。

TCP/IP (Transmission Control Protocol/Internet Protocol) 的简写,中文译名为传输控制协议 / 因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的协议、Internet 国际互联网络的基础,简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。
客户端向服务端发送消息…

    

王垠:对 Go 语言的综合评价

大家好,我是煎鱼。

对 Go 语言评价的人是非常多的,在基于自己多编程语言设计和思考的理解外,也可以多看看其他人是怎么想的,有助于多角度的认知。

今天给大家分享的是日常争议很大的王垠所写的《对 Go 语言的综合评价[1]》,看看能不能得到些什么。

以下为原文,内容仅代表王垠本人的评价,不代表煎鱼也一定认同。内容有所修整、格式、排版。篇幅比较长,建议收藏,预留时间阅读。…