• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
NSOperation for multiple small pipelines?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Prev by Date: Re: CALayer doesn't resize immediately
  • Next by Date: multi coloured string
  • Previous by thread: CATransform3D perspective question
  • Next by thread: multi coloured string
  • Index(es):
    • Date
    • Thread