美文网首页
iOS信号量与for循环结合用法 解决异步串行队列

iOS信号量与for循环结合用法 解决异步串行队列

作者: Trigger_o | 来源:发表于2018-05-30 18:44 被阅读0次

    ```

        //dispatch_semaphore需要在异步线程中使用

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            //初始化信号量为0,当信号量小于0时,线程会进入等待状态

            dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);

            for(NSIntegeri =0; i<10; i++){

                //开始执行异步操作

                [http uploadDataWithCompleteBlock:^(id  _NullableaResponseObject, NSError *_NullableanError) {

                    NSLog(@"++第%ld次",i);

                    //异步结束之后,信号量加1,线程回复执行

                    dispatch_semaphore_signal(sem);

                }];

                //立即进入等待状态,信号量减一

                dispatch_semaphore_wait(sem,DISPATCH_TIME_FOREVER);

            }

        });

    ```

    相关文章

      网友评论

          本文标题:iOS信号量与for循环结合用法 解决异步串行队列

          本文链接:https://www.haomeiwen.com/subject/payxsftx.html