There is a function in runtime for exiting a goroutine: http://golang.org/pkg/runtime/#Goexit
runtime.Goexit()
If your panic escapes the goroutine, the entire program panics. So yes, you would need to recover.
문제
For example:
func foo() {
// How can I exit the goroutine here?
}
func bar() {
foo()
}
func goroutine() {
for {
bar()
}
}
func main() {
go goroutine()
}
How can I exit the goroutine directly from foo()
or bar()
? I was thinking of maybe using panic
and recover
, but I am not sure exactly how they work. (With traditional exception handling, I would just wrap the body of goroutine()
in a try
block and throw an exception when I want to exit.)
EDIT: If I used panic
, do I even need to recover()
?
해결책
There is a function in runtime for exiting a goroutine: http://golang.org/pkg/runtime/#Goexit
runtime.Goexit()
If your panic escapes the goroutine, the entire program panics. So yes, you would need to recover.