GCD信号量主要用到了以下三个方法:
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
dispatch_semaphore_signal(semaphore);
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
dispatch_semaphore_t semaphore =dispatch_semaphore_create(0);
这个方法表示创建一个信号量,0表示初始值。
dispatch_semaphore_signal(semaphore);
这个方法是表示发送信号,即表示信号量加1.
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
这个方法表示等待,如果此时信号量为0则表示一直等待下去阻当前的线程。如果大于0则向下执行并且信号量减一。
网友评论