golang--监控goroutine异常退出
在golang中,我们可以很轻易产生数以万计的goroutine,不过这也带来了麻烦:在运行中某一个goroutine异常退出,怎么办? 在erlang中,有link原语,2个进程可以链接在一起,一个在异常退出的时候,向另一个进程呼喊崩溃的原因,然后由另一个进程处理这些信号,包括是否重启这个进程。在这方面,erlang的确做得很好,估计以后这个特性会在golang中得到实现。 由此得到启发,我写了一个简单的程序,监控goroutine异常退出。 package main import ( "log" "runtime" "math/rand" "time" ) type message struct { normal bool //true means exit normal, otherw...阅读全文