GCD高级用法-信号量

本文探讨了GCD中的Dispatch Semaphore,通过实际开发案例展示了如何利用信号量进行多线程同步,包括关键函数的使用技巧。
摘要由CSDN通过智能技术生成

GCD中的信号量是指 Dispatch Semaphore。

所谓信号,类似于道路上的信号灯,一种用来标识等待还是通过的标志。绿灯通过,红灯等待。道路中通过信号灯的颜色标识通过和等待,而Dispatch Semaphore中通过“计数”来标识通过和等待。

GCD的Dispatch Semaphore提供了三个函数操作Semaphore
  
dispatch_semaphore_create  //创建一个semaphore
dispatch_semaphore_signal //发送一个信号
dispatch_semaphore_wait  //等待信号
    
    /*
     通过dispatch_semaphore_create 函数创建一个Semaphore并初始化信号的总量。
     通过dispatch_semaphore_signal 函数发送一个信号,让信号总量加1。
     通过dispatch_semaphore_wait可以使总信号量减1,当信号总量为0时就会一直等待,否则就可以正常执行
     */

接下来详细说明一下这3个函数:
dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
通过dispatch_semaphore_create 函数生成Dispatch Semaphore。参数表示计数的初始值,上面设置的初始值为1。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值