美文网首页
多线程代码示例

多线程代码示例

作者: JimmyL | 来源:发表于2018-06-01 14:56 被阅读7次

1、

dispatch_queue_t queue = dispatch_queue_create("shddj", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
    NSLog(@"1");
    dispatch_sync(queue, ^{
        NSLog(@"2");
    });
    NSLog(@"3");
});

生成一个串行队列,队列中的block按照先进先出(FIFO)的顺序去执行,实际上为单线程执行。第一个block异步添加到穿行队列,先打印 “1”,然后同步向串行队列添加第二个block,造成线程阻塞,即死锁,程序崩溃;

2、

dispatch_queue_t queue = dispatch_queue_create("concurrent_queue", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue, ^{
    NSLog(@"1");
    dispatch_sync(queue, ^{
        NSLog(@"2");
    });
    NSLog(@"3");
});
NSLog(@"4");
while (1) { }
NSLog(@"5");

生成一个并发队列,并异步添加最外层block到并发队列,主线程在添加完继续执行 NSLog(@"4"),因为 NSLog(@"2") 是同步任务,要在执行完 NSLog(@"2") 采取执行 NSLog(@"3");

相关文章

  • day20-多线程

    1.多线程 代码示例 运行结果 2.创建线程 代码示例 运行结果 4.应用 server(服务端) 代码示例 cl...

  • 10.25 多线程

    1.多线程 代码示例 运行结果 2.创建线程 代码示例 运行结果 4.应用 server(服务端) 代码示例 cl...

  • 多线程代码示例

    1、 生成一个串行队列,队列中的block按照先进先出(FIFO)的顺序去执行,实际上为单线程执行。第一个bloc...

  • 2019-12-25

    多线程解决耗时操作示例代码 (void)touchesBegan:(NSSet )touches withEven...

  • Python爬虫第七天:多线程爬虫|Scrapy框架

    内容简述: 一:多线程爬虫 二:Scrapy框架 一:多线程爬虫原理 【示例见代码】 二:Scrapy框架...

  • Java中解决多线程数据安全问题

    同步代码块 基本语句 synchronized (任意对象) {操作共享代码} 代码示例 优缺点: 解决了多线程的...

  • GCD多线程

    线程&多线程 本篇示例代码[https://github.com/superFool/dispatchDemo.g...

  • Java并发编程 - jdk1.7下HashMap死循环问题

    这篇文章以一个示例出发研究多线程环境下infinite loop问题。 代码示例 为了调试方便(方便查看局部变量的...

  • JAVA 多线程

    java 多线程的实现方式 一、继承Thread类,并重写run方法 示例代码: 二、实现Runnable接口并重...

  • 电子档案管理系统单点登陆示例

    JAVA示例 前台示例代码 后台示例代码 .NET示例 前台ASPX示例代码 后台CS示例代码

网友评论

      本文标题:多线程代码示例

      本文链接:https://www.haomeiwen.com/subject/mgytcftx.html