美文网首页一些收藏
semaphore的几种用法

semaphore的几种用法

作者: 康小曹 | 来源:发表于2020-10-28 17:21 被阅读0次

    1. 线程同步(加锁)

    1. 使用 dispatch_semaphore_create(1) 创建一个最大量为 1 的信号量;
    2. 调用 semaphore.wait(),信号量减 1 变为0;
    3. 执行同步代码,同时其他线程的代码进入时会挂起等待;
    4. 执行完毕之后 semaphore.signal(),信号量加 1,发送通知;
    5. 循环;

    2. 多线程

    semaphore(n)
    semaphore.wait()
    semaphore.signal()

    3. 阻塞线程

    dispatch_semaphore_create(0)
    semaphore.wait(),此时因为计数器为0,当前线程会阻塞在这段代码中;
    异步回调完成之后:semaphore.signal(),wait 代码收到通知,此时计数器为1,将会继续执行代码,比如 return 请求到的数据;

    相关文章

      网友评论

        本文标题:semaphore的几种用法

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