代码虽然不常 但是很重要
#import "semaphoreController.h"
@interface semaphoreController ()
@end
@implementation semaphoreController
- (void)viewDidLoad {
[super viewDidLoad];
dispatch_semaphore_t semaphore = dispatch_semaphore_create(10);
for (int i = 0; i < 100; i++) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
//1.当前信号量-1
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog(@"%d",i + 1);
// sleep(2); C语言中的 睡眠
[NSThread sleepForTimeInterval:3];//OC 中的
//当前的信号量加1
dispatch_semaphore_signal(semaphore);
});
// Do any additional setup after loading the view.
}
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
ios-信号量
最新推荐文章于 2020-12-31 21:31:02 发布