阅读背景:

iOS多线程开发—— GCD dispatch_semaphore 信号量

来源:互联网 

在GCD中提供了一种信号机制,也可以解决资源抢占问题(和同步锁的机制并不一样)。

GCD中信号量是dispatch_semaphore_t类型,支持信号通知和信号等待。每当发送一个信号通知,则信号量 +1,每当发送一个等待信号时信号量 -1。如果信号量为0则信号会处于等待状态,直到信号量大于0开始执行。根据这个原理我们可以初始化一个信号量变量,默认信号量设置为1,每当有线程进入“加锁代码”之后就调用信号等待命令(此时信号量为0)开始等待,此时其他线程无法进入,执行完后发送信号通知(此时信号量为1),其他线程开始进入执行,如此就达到了线程同步的目的。GCD中




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: