Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
- Subject: Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
- From: Wade Tregaskis <email@hidden>
- Date: Wed, 14 Mar 2012 14:09:34 -0700
> I don't like the idea of a multithreaded aproach by default, because as a general rule, you
> should not make your application multithreaded unless you have a good
> reason.
a) The reality is that Cocoa already exposes you to a lot of concurrency and asynchronisity, and is only going to do much more so in future. That said, there are limits to what can be done here (especially with dispatch queues; the way GCD paradigms interact with callback patterns is far from seamless).
b) This convenientional wisdom is, in my humble opinion, antiquated. It's just the reality today that multi-threaded performance scales better than single-threaded performance. It has been that way for nearly a decade, I'd say. You may disregard that as irrelevant to your app XYZ because any single core today is good enough for it, but just look at the introduction of the iPhone as an example of how single-threaded performance can drop very abruptly, and how you eventually got more cores but not much of a core boost.
And aside from performance, there are many other factors such as latency, responsiveness etc that are intertwined with concurrency (in the sense that dispatch queues, background threads, etc target all the issues simultaneously) which make it wise to get away from a serial world view, even if you don't otherwise pro-actively introduce concurrency.
I am almost certainly on the edge of the bell curve, having spent many years now working on performance tools and HPC, but I've noticed the curve is catching up to me. To those riding the wave, I can promise you this: parallel programming really isn't that hard.
_______________________________________________
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