oc GCD 信号量

来源:互联网 发布:阿里云ecs适合hdfs吗 编辑:程序博客网 时间:2024/06/02 01:22

信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞,直至计数器大于零,然后线程会减少这个计数。


 dispatch_semaphore_t m_semaphore;

 m_semaphore =dispatch_semaphore_create(0);  ///0 


void DatabaseMgr::SyncExecute(dispatch_block_t block) //dispatch_async发一个同步任务

{

    dispatch_async(m_dbQueue, ^{

        block();

        dispatch_semaphore_signal(m_semaphore); ///1

    });

    

    dispatch_semaphore_wait(m_semaphore,DISPATCH_TIME_FOREVER);///1->0

}

1 0
原创粉丝点击