golang网络通信超时设置方式
网络通信中,为了防止长时间无响应的情况,经常会用到网络连接超时、读写超时的设置。本文结合例子简介golang的连接超时和读写超时设置。如果超过timeout的指定的时间,连接没有完成,会返回超时错误。为了测试超时,我们在写操作之前,sleep 3s。然后通过 go 关键字并发执行,通过 channel 返回结果。这样一来,当创建的 goroutine 数量到达 chLimit 的缓冲区上限后。并发限制生效了。运行结果task 0 , task 1 并发执行,耗时 2秒。如果 channel 不带缓冲,那么直到他被消费掉之前,这个 goroutine 都会被阻塞挂起。然而如果这里的并发限制,也就是 chLimit 生效阻塞了主 goroutine,那么后面消费这些数据的代码并不会执行到。。。
用户评论