gpt4 book ai didi

ios信号量等待不等待

转载 作者:可可西里 更新时间:2023-11-01 06:22:01 24 4
gpt4 key购买 nike

当使用大于 0 的值创建信号量时,我在使用 dispatch_semaphore_wait(..) 时遇到问题

sema = dispatch_semaphore_create(2);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//signals here
});

dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);

wait不应该要等两个信号吗?在上面的代码中,它根本不等待,所以调用了发布,结果是崩溃!

最佳答案

使用调度组而不是信号量来获得此行为。

在开始任务前两次调用 dispatch_group_enter() 将组初始化为 2,dispatch_group_wait() 将等待两次调用 dispatch_group_leave( ) 在它返回之前。

关于ios信号量等待不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17061748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com