Golang实现超时退出的三种方式