event? Really only useful for true long running tasks or background general purpose threads (the system will make those background threads) All are event based in Cocoa, last use a timer
you run some long running task, such as loading an image, processing it (edge detection maybe?) and displaying it Keeps the main queue open for other UI updates
handles dependencies You build a web of dependent operations Just adding operations you depend on to a property NSOperationQueue figures out how to run through it as fast as possible