多執行緒, 執行緒佇列

2021-06-20 04:03:19 字數 1148 閱讀 4069

[

self

performselectoronmainthread

:@selector

(refreshcellforliveid:)

withobject:userinfo

waituntildone:yes];

該方法的作用是在主線程中,執行制定的方法(**塊)。

引數:@selector(refreshcellforliveid:)就是,要定義我們要執行的方法。

withobject:userinfo

定義了,我們執行refreshcellforliveid:方法時,傳入的引數物件。型別是id。(我們可以傳入任何引數)

waituntildone:yes];

指定,當前執行緒是否要被阻塞,直到主線程將我們制定的**塊(refreshcellforliveid:方法)執行完。

//執行緒佇列

dispatch_group_t

taskgroup =dispatch_group_create();

//建立乙個排程組

dispatch_queue_t

mainqueue =dispatch_get_main_queue();

//建立佇列

dispatch_group_async(taskgroup, mainqueue, ^);

dispatch_group_async(taskgroup, mainqueue, ^);

dispatch_group_async(taskgroup, mainqueue, ^);

dispatch_group_notify(taskgroup, mainqueue, ^);

dispatch_release(taskgroup);

//多執行緒,非同步獲取

//非同步獲取

//uiimageview * la1 = (uiimageview*)[self.view viewwithtag:85521];

//dispatch_queue_t queue;

//queue = dispatch_queue_create("com.example.operation", null);

//dispatch_async(queue, ^);

//    

//});

多執行緒 佇列

對於編寫多執行緒的朋友來說,佇列具有天生的互斥性。在佇列裡面,乙個負責新增資料,乙個負責處理資料。誰也不妨礙誰,誰也離不開誰。所以,佇列具有天生的並行性。只針對 乙個執行緒讀,乙個執行緒寫。當不滿足這個先決條件,多執行緒也完蛋,也得進佇列加鎖,出佇列加鎖 view plain print?defin...

多執行緒 阻塞佇列

blockingqueue最終會有四種狀況,丟擲異常 返回特殊值 阻塞 超時,下表總結了這些方法 丟擲異常 特殊值阻塞 超時插入add e offer e put e offer e,time,unit 移除remove poll take poll time,unit 檢查element peek...

多執行緒 阻塞佇列

1 當佇列滿的時候,插入元素的執行緒被阻塞,直達佇列不滿。2 隊列為空的時候,獲取元素的執行緒被阻塞,直到佇列不空。生產者就是生產資料的執行緒,消費者就是消費資料的執行緒。在多執行緒開發中,如果生產者處理速度很快,而消費者處理速度很慢,那麼生產者就必須等待消費者處理完,才能繼續生產資料。同樣的道理,...