最近手头没什么活,代码翻来覆去就那点东西,也没什么可做的。既然没得做,那就接着偷学吧。这次学的是网络编程。
网络分层
首先记一下网络通信的层数。课本里讲的是五层模型,而国际标准(OSI)是七层,大概了解一下就行。Socket 位于应用层和传输层之间。
goroutine 与通道
golang 的并发使用 goroutine 这种东西,它和实际的系统线程是多对多的关系。
通道(channel)是一种通信用的数据结构,遵循先进先出(FIFO)的原则,类似于一个队列。通道关闭后只能发送、不能接收。
无缓冲通道必须有接收才能有发送,否则执行的时候会报错。