信号量(二)iOS 信号量简单使用

信号量:控制最大的并发数

//创建信号为为10
    dispatch_semaphore_t semaphore = dispatch_semaphore_create(10);
    for (int i = 0; i < 100; i++) {
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            //由于信号量为10 队列里面最多会有10个人任务被执行 信号量-1
            dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
            
            NSLog(@"________%d______",i);
            
            //休眠
            [NSThread sleepForTimeInterval:3];
            
            //信号量+1
            dispatch_semaphore_signal(semaphore);
        });

打印结果

由于信号量为10,所以每次打印10个数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容