1、并行-异步(ST1与ST2抢占资源)
1-1)、获取 并行(全局)队列 ,DISPATCH_QUEUE_PRIORITY_DEFAULT 为默认优先级。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT , 0);
1-2)、创建异步事件。
dispatch_async(queue, ^{
//do something 1
});
dispatch_async(queue, ^{
//do something 2
});
2、串行-同步(顺序执行)
2-1)、创建串行队列,DISPATCH_QUEUE_SERIAL 为串行
dispatch_queue_t queue = dispatch_queue_create("test", DISPATCH_QUEUE_SERIAL);
2-2)、创建同步事件。
dispatch_sync(queue, ^{
//do something 1
});
dispatch_sync(queue, ^{
//do something 2
});
3、并行-同步(顺序执行)
3-1)、获取 并行(全局)队列 ,DISPATCH_QUEUE_PRIORITY_DEFAULT 为默认优先级。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT , 0);
3-2)、创建同步事件。
dispatch_sync(queue, ^{
//do something 1
});
dispatch_sync(queue, ^{
//do something 2
});
4、串行-异步(理解起来怪怪的,测试结果,顺序执行)
4-1)、创建串行队列,DISPATCH_QUEUE_SERIAL 为串行
dispatch_queue_t queue = dispatch_queue_create("test", DISPATCH_QUEUE_SERIAL);
4-2)、创建异步事件。
dispatch_async(queue, ^{
//do something 1
});
dispatch_async(queue, ^{
//do something 2
});