本文介绍golang进行超时控制的几种方法
基于time.After的超时控制
1 | package main |
将需要控制时间的服务放到go协程里
基于Context的超时控制
1 | package main |
可以看出这边用法和time.after效果一样
对包含连续任务的总任务进行超时控制
一种是使用context.WithTimeout,该函数超时自动取消,即对ctx.Done进行赋值
1 | package main |
另一种使用ctx.WithCancel,是不带timeout的WithTimeout函数
1 | package main |
使用cancel,可以很方便地在别的函数体或者线程控制任务的运行