I use pthread for control, good performance and portability. sometimes you can use NSThread for the optional NSObject mate that it offers.
There are several lower-level interfaces where you need to coordinate the threads with the API you are using (for example, in real-time I / O or rendering). sometimes you have the flexibility to use the thread, sometimes in this situation it is convenient to use NSThread , so you can easily use the CF or NS startup loops with these interfaces. Thus, the startup loop parameter that you configured in your thread is more likely to be of interest to the API than the thread itself. in these cases, GCD may not necessarily be an alternative.
but ... most developers do not need to go to these levels often.
justin
source share