信号量的使用,其实就是把异步变同步,信号量=0时等待执行,执行完之后把信号量+1,当信号量>0时就可以顺序执行了。
//创建:
dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
//信号量-1:
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
//信号量+1:
dispatch_semaphore_signal(semaphore);
一般创建信号量初始值设置为1。
网友评论