NSOperation for multiple small pipelines?
NSOperation for multiple small pipelines?
- Subject: NSOperation for multiple small pipelines?
- From: David Carlisle <email@hidden>
- Date: Wed, 7 Nov 2007 14:11:07 -0700
If I have a program that can create multiple small pipelines of
arbitrary length, would NSOperation be effective for distributing the
processes among several threads? A useful answer for me would be
"Yes, just study the documentation" or "no, it won't solve the problem."
If I have one pipeline, A-B-C, then process A would put data into a
queue for process B, which would put data into a queue for process C.
If only one thread were available, I would want it to completely
execute process A, then completely execute process B, etc. If three
threads were available, I would want each process to be assigned to a
different thread. If one of the processes crashes, then it needs to
cause the other processes in that pipeline to gracefully terminate.
Then lets say I have three pipelines, A-B-C, I-J-K and X-Y-Z. If
three threads were available, then they could possibly be assigned to
processes A, B and C, or possibly to A, I, and X. If more threads
were available then they should be assigned to processes that are
likely to have available data. In the case where processes A, I and X
are active, then processes likely to have data would be processes B, J
and Y.
I'm assuming from what I read before Leopard was released that
NSOperation could be informed that process B was dependent on process
A. So does that mean that NSOperation will not begin process B until
after process A has finished? Or will NSOperation be able to begin
process B after process A has begun and allow them both to operate
concurrently? Are there implications for how I have to put locks on
the queues?
My present implementation just causes a thread to be created for every
process, but now I understand that the new way to approach the problem
is to use NSOperation and allow it to decide how many threads should
actually be created.
Any thoughts?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden