I have two algorithm for same task, one is best for some cases and one for some other cases.
So I would like to start two goroutines at the same time whenever processing the task, and only use the result returned by the first finished goroutine.
Also, in the result, I need to know it is returned by which algorithm. And if I think the first returned result is not right, I would like to wait for the second result.
I read thru the doc of https://golang.org/pkg/sync/, seems it can only wait for all goroutine finish.
How can I implement this idea in golang?