读书笔记GO

《go web 编程》第三章 web基础:Go 的 http 包

2022-08-18  本文已影响0人  bycall

Go 的 http 有两个核心功能:Conn、ServeMux

Conn 的 goroutine


Go 为了实现高并发和高性能,使用了 goroutines 来处理 Conn 的读写事件,这样每个请求都能保持独立,相互不会阻塞,可以高效的响应网络事件。这是 Go 高效的保证。

Go 在等待客户端请求里面是这样写的:

c, err := srv.newConn(rw)
if err != nil {
    continue
}
go c.serve()

这里我们可以看到客户端的每次请求都会创建一个 Conn,这个 Conn 里面保存了该次请求的信息,然后再传递到对应的 handler,该 handler 中便可以读取到相应的 header 信息,这样保证了每个请求的独立性。

上一篇下一篇

猜你喜欢

热点阅读