這一章我們將看一下Go的網(wǎng)絡(luò)模塊。Go在網(wǎng)絡(luò)編程方面提倡的做法是,每來一個連接就開一個goroutine去處理。非常的用戶友好,不用學(xué)習(xí)一些反人類的網(wǎng)絡(luò)編程模式,并且性能是有保障的。這些都得益于Go的網(wǎng)絡(luò)模塊的實現(xiàn)。
由于goroutine的實現(xiàn)非常輕量,很容易就可以開很多的goroutine,這為每條連接分配一個goroutine打好了基礎(chǔ)。Go對網(wǎng)絡(luò)的處理,在用戶層是阻塞的,實現(xiàn)層是非阻塞的。這一章里我們將研究Go是如何封裝好epoll/kqueue,為用戶提供友好的阻塞式接口的。
另一方面,我們也會看一下Go是的網(wǎng)絡(luò)層的一些api是如何優(yōu)雅進行封裝的。
更多建議: