ios - dispatch_barrier_async not word with dispatch_get_global_queue -


there code:

dispatch_queue_t queue =  dispatch_get_global_queue(dispatch_queue_priority_default, 0); //    dispatch_queue_t queue = dispatch_queue_create("zxc", dispatch_queue_concurrent); dispatch_async(queue, ^{     nslog(@"1"); }); dispatch_async(queue, ^{     nslog(@"3"); }); dispatch_async(queue, ^{     nslog(@"4"); }); dispatch_barrier_async(queue, ^{     nslog(@"write"); }); dispatch_async(queue, ^{     nslog(@"5"); }); dispatch_async(queue, ^{     nslog(@"2"); }); dispatch_async(queue, ^{     nslog(@"7"); }); dispatch_async(queue, ^{     nslog(@"6"); }); 

dispatch_barrier_async not work dispatch_get_global_queue can work dispatch_queue_create("zxc", dispatch_queue_concurrent);

why?

correct. cannot put barrier on global queue. can put barriers on private queues create yourself. explained in documentation dispatch_barrier_async:

the queue specify should concurrent queue create using dispatch_queue_create function. if queue pass function serial queue or 1 of global concurrent queues, function behaves dispatch_async function.


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -