偷学golang(四)

最近手头没什么活,代码翻来覆去就那点东西,也没什么可做的。既然没得做,那就接着偷学吧。这次学的是网络编程。

网络分层

首先记一下网络通信的层数。课本里讲的是五层模型,而国际标准(OSI)是七层,大概了解一下就行。Socket 位于应用层和传输层之间。

goroutine 与通道

golang 的并发使用 goroutine 这种东西,它和实际的系统线程是多对多的关系。

通道(channel)是一种通信用的数据结构,遵循先进先出(FIFO)的原则,类似于一个队列。通道关闭后只能发送、不能接收。

无缓冲通道必须有接收才能有发送,否则执行的时候会报错。