美文网首页程序员的自我修养
GCD之深入学习知识点备忘4

GCD之深入学习知识点备忘4

作者: yehkong | 来源:发表于2017-05-20 11:35 被阅读3次
    • dispatch semaphore
      1.dispatch semaphore是持有计数的信号,该计数是多线程编程中的计数类型信号。计数为0时等待,计数为1或大于1时,减去1而不等待。
      2.dispatch_semaphore_wait函数等待dispatch semaphore的计数值大于或等于1,当计数值大于等于1,或者等待中计数值大于等于1时,对该计数进行减法并从dispatch_semaphore_wait函数返回。
      3.dispatch_semaphore_wait函数的返回值也与dispat
      ch_group_wait函数相同。
    dispatch_time_t time;//定义dispatch_time_t;
    long result = dispatch_semaphore_wait(semaphore,time);
    if(result == 0){
    //在time定义的待机等待时间中如果计数值大于或者等于1,则返回0,可执行需要进行排他控制的任务。任务结束通过dispatch_semaphore_signal函数将dispatch semaphore的计数值加1.
    }else{
    //计数值为0,因此在等待指定时间后返回非0;
    }
    
    • dispatch_once
      diapatch_once函数是保证在应用程序执行中只执行一次指定的api。
    static dispatch_once_t token;
    dispatch_once(&token,^{
    });
    

    这个函数比用控制变量控制更可靠。

    相关文章

      网友评论

        本文标题:GCD之深入学习知识点备忘4

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