2
當我嘗試GCD函數dispatch_barrier_async
時,它按照預期在dispatch_queue_create
創建的隊列上工作,而當我將它放在由dispatch_get_global_queue
創建的全局隊列中時,障礙似乎不再有效= =,有人可以解釋它嗎?謝謝〜 the demo imagedispatch_barrier_async似乎對全局隊列沒有影響?
當我嘗試GCD函數dispatch_barrier_async
時,它按照預期在dispatch_queue_create
創建的隊列上工作,而當我將它放在由dispatch_get_global_queue
創建的全局隊列中時,障礙似乎不再有效= =,有人可以解釋它嗎?謝謝〜 the demo imagedispatch_barrier_async似乎對全局隊列沒有影響?
這並不奇怪,它是記錄的行爲。
如果您使用此功能將一個塊添加到您自己創建的隊列中,那麼它將阻止所有其他塊直至完成。如果你把它添加到一個公共隊列,那麼它的行爲就像在https://developer.apple.com/reference/dispatch/1452797-dispatch_barrier_async
dispatch_async
文件規定:
指定應該是您使用自己創建併發隊列的隊列dispatch_queue_create函數。如果您傳遞給此函數的隊列是串行隊列或全局併發隊列之一,則此函數的行爲與dispatch_async函數相同。
是的,我明白了,非常感謝你的回覆,非常快,很好,我沒有仔細閱讀API = =。 – FFur