A computation binding when multithreading will not differ just because you use NSThread instead of NSOperation. However, keep in mind that current iOS devices use dual-core processors.
Some of your questions are not very specific. You may or may not want to use multiple NSOperationQueue. It all depends on how you want to approach it. if you have different subclasses of NSOperation or different NSBlockOperations, you can control the order of execution using priorities, or you can have different queues for different types of operations (especially when working with queues). I personally prefer to use 1 operation queue when working with the same type of operation and have a different operation queue when operations are not connected / reliable. This gives me the flexibility to cancel and stop operations in the queue based on something happening (deleting the network, switching to the background).
I never found a good reason to add an operation based on something that happens during the execution of the current operation. If you need this, you can use the NSOperationQueue class method, currentQueue, which will provide you with the operation queue in which the current operation runs.
If you are working with master data using NSOperation, I would recommend creating a context for each specific operation. Be sure to initialize the context inside the main method, since that is where you are in the correct NSOperation background thread.
For each task, it is not necessary to have one NSOperation object. You can upload data and analyze it in NSOperation. You can also load data abstractly and manipulate data loaded using the NSOperation completion block property. This will allow you to use the same object to receive data, but have different data manipulations.
My recommendation is to read the documentation for NSOperation, NSBlockOperation, and NSOperationQueue. Check your current project to find out how you can adapt these classes to your current project. I highly recommend that you take the NSOperation family path instead of the NSThread family.
Good luck.
J2thec
source share