I have a few classes that all try to obtain the same data as each
other using different methods. Each one takes around 5 seconds to get
the data, so I'd much rather have them all try to get it at once. I
only need the data once, from whoever gets it first.

So what I would like to do is have, lets say, fetchdata() for each
class called in a thread, and as soon as the first non-nil is returned
from fetchdata, I want to kill the other threads and go on with the
program.

I have read the threading documentation and tried to play around a bit
with it, but I can't seem to get it to do what I want. If someone
could tell me how to do it or give me a point in the right direction,
that'd be helpful.