多執行緒 佇列的簡單操作

2022-08-16 12:36:12 字數 1138 閱讀 2386

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...