信号量(二)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个数。

你可能感兴趣的:(信号量(二)iOS 信号量简单使用)