下面是创建并初始化一个操做队列,并且咱们能够设置这个队列每次被处理的“操做(NSOperation)”数量: java
NSOperationQueue *aQ = [[NSOperationQueue alloc] init]; [aQ setMaxConcurrentOperationCount:10];而后,咱们后面就能够创建须要操做的任务啦,而后加到操做队列中,就能够实现队多线程啦,ios中,使用NSInvocationOperation(NSOperation的子类)是最简单的多线程编程方式,在iPhone编程中是常常被用到的
/建立一个NSInvocationOperation对象,并初始化到方法 //在这里,selector参数后的值是你想在另一个线程中运行的方法(函数,Method) //在这里,object后的值是想传递给前面方法的数据 NSInvocationOperation* theOp = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(myTaskMethod:) object:data]; // 下面将咱们创建的操做“Operation”加入到本地程序的共享队列中(加入后方法就会马上被执行) // 更多的时候是由咱们本身创建“操做”队列 [aQ addOperation:theOp];
// 这个是真正运行在另一个线程的“方法” - (void)myTaskMethod:(id)data { // Perform the task. }简单介绍以后,其实能够发现这种方法是很是简单的。不少的时候咱们使用多线程仅仅是为了防止主线程堵塞,而NSInvocationOperation就是最简单的多线程编程,故该中方式在iPhone编程中是常常被用到的。