【IOS+Android】信号量

来源:互联网 发布:java notify在哪个包中 编辑:程序博客网 时间:2024/05/18 08:11
/**
 *
@brief创建信号量
 */

-(
void)createSemaphore {
   
 semaphore = dispatch_semaphore_create(0);
}


/**
 *
@brief等待信号-1, 大于0才开始运行
 */

-(
void)wait {
    //
 dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);//一直等
   
 dispatch_semaphore_wait(semaphore,dispatch_time(DISPATCH_TIME_NOW, 10*NSEC_PER_SEC));//等待10秒超时,会自动发送一个信号
}

/**
 *
@brief发送一个信号+1
 */

-(
void)notify {
   
 dispatch_semaphore_signal(semaphore) ;
}


Android :

CountDownLatch 

/**
 *
@brief等待信号
 */
await();//等待计数器为0才开始运行

/**
 *
@brief发送一个信号
 */
countDown();//让计数器减1