nsoperationqueue
*queue = [[
nsoperationqueue
alloc
]init
];queue.maxconcurrentoperationcount= 2;
//執行緒池中的執行緒數,也就是併發運算元。預設情況下是-1,-1表示沒有限制,這樣會同時執行佇列中的全部的操作。
for (nsinteger i = 0 ; i <1000000;i ++ ) ];
[queue addoperation:operation];
}nsblockoperation
*operation = [
nsblockoperation
blockoperationwithblock
:^];
nsblockoperation*operation1 = [nsblockoperation blockoperationwithblock
:^];
nsblockoperation*operation2 = [nsblockoperation blockoperationwithblock
:^];
[operation adddependency:operation2];//
新增依賴關係改變執行順序
[operation2 setqueuepriority:nsoperationqueuepriorityhigh];
//設定
operation2
為高優先順序
先執行[queue addoperation:operation];
[queue addoperation:operation1];
[queue addoperation:operation2];
[queue addoperationwithblock:^];
// 阻塞當前執行緒,等待queue的所有操作執行完畢
[queue waituntilalloperationsarefinished];
[queue setsuspended:yes];//
暫停[queue setsuspended:no];//
恢復[queue cancelalloperations];
//取消所有操作
多執行緒簡單操作
消費者和生產者關係實現同步 以購進和售賣20本書為例 消費者和生產者的關係實現同步。class book system.out.println 售賣書籍為 total flag false notify return total public synchronized void settotal i...
多執行緒, 執行緒佇列
self performselectoronmainthread selector refreshcellforliveid withobject userinfo waituntildone yes 該方法的作用是在主線程中,執行制定的方法 塊 引數 selector refreshcellfor...
多執行緒 佇列
對於編寫多執行緒的朋友來說,佇列具有天生的互斥性。在佇列裡面,乙個負責新增資料,乙個負責處理資料。誰也不妨礙誰,誰也離不開誰。所以,佇列具有天生的並行性。只針對 乙個執行緒讀,乙個執行緒寫。當不滿足這個先決條件,多執行緒也完蛋,也得進佇列加鎖,出佇列加鎖 view plain print?defin...