IOS编程-多线程
NSThread
初始化方法和创建线程的有关参数;
在主线程执行还是在由主线程创建的子线程执行;
NSOperation and NSOperationQueue
NSOperation是不能直接拿来调用的,使用其定义好的子类NSInvocationOperation或者自定义其子类重写main方法;
通过NSOperationQueue中的addOperation:方法来添加操作,然后系统会自动执行相关操作;
GCD(Grand Center Dispatch)
相关资料
如何控制线程池中的线程数?
队列里可以加入很多个NSOperation, 可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中的线程可看作消费者,从队列中取走操作,并执行它。
通过下面的代码设置:
[queue setMaxConcurrentOperationCount:5];
线程池中的线程数,也就是并发操作数。默认情况下是-1,-1表示没有限制,这样会同时运行队列中的全部的操作
注意问题
同步和异步;
什么时候用同步什么时候用异步;
线程数,超出预设的线程数的最大值会怎样,为什么要设线程数;
执行的线程有没有优先级,执行完成有没有先后顺序;
线程间通信;
线程安全,如何让一个方法未执行完之前第二个方法不可以执行;