串行队列和并行队列的区别体现

网络上很多文章都写了多线程的4种组合
同步+串行 , 异步+串行 , 同步+并行 ,异步+并行
在同一条线程中使用,不再赘述,网上都是这类。
但是在多个线程中使用的话,会有区别,体现了串行队列和并行队列的特性。
比如两个任务,两个子线程,各处理一个,在各自线程中使用串行+同步的话,原以为这两个任务没有影响,会在各自线程中执行,无序的。但是结果是这两个任务是顺序执行的。

代码如下

    self.queue = dispatch_queue_create("test", DISPATCH_QUEUE_CONCURRENT);
    NSThread *thread1 = [[NSThread alloc] initWithBlock:^{
        dispatch_async(self.queue, ^{
            [NSThread sleepForTimeInterval:3];
            NSLog(@"线程 %@  1", [NSThread currentThread]);
        });
    }];
    [thread1 start];
    
    
    NSThread *thread2 = [[NSThread alloc] initWithBlock:^{
        dispatch_async(self.queue, ^{
            [NSThread sleepForTimeInterval:3];
            NSLog(@"线程 %@  2", [NSThread currentThread]);
        });
    }];
    [thread2 start];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。