目录

golang超时等待

描述

go中如何实现超时等待

python实现:队列超时等待

queue.get(block=True, timeout=45)

go实现:通道+time计时

select会阻塞两个case,直到其中一个返回。如果是response,则停止计时器; 否则,就返回错误

func _waitResponse(queueChan *chan int, timeout time.Duration) (int, error){
	ticker := time.NewTicker(timeout)
	var response int
	var err error
	select{
	case response = <-*queueChan:
		ticker.Stop()
	case <-ticker.C:
		err = errors.New("wait response timeout")
	}
	return response, err
}

佛說大乘無量壽莊嚴清淨平等覺經pdf 净土大经科注2014-doc 此生必看的科学实验-水知道答案 印光大师十念法(胡小林主讲第1集)