http://stackoverflow.com/questions/18319520/nsoperation-or-gcd-threading-with-animations
An example of how one might do producer/consumer using GCD queues and dispatch_io.