下面是創建並初始化一個操做隊列,並且咱們能夠設置這個隊列每次被處理的「操做(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編程中是常常被用到的。