gpt4 book ai didi

swift - DispatchGroup 会永远等待吗?

转载 作者:行者123 更新时间:2023-12-03 12:44:57 24 4
gpt4 key购买 nike

我想知道以下情况。

我在一个函数中有一个 DispatchGroup。现在我在后台线程上进入组并调用 wait()

func test() {
let group = DispatchGroup()

DispatchQueue.global().async {
group.enter()
group.wait()
}
}

我的问题是在主线程离开函数后,该组是否会永远等待或被释放?

我不确定是否有任何引用或捕获。我会非常感谢一些解释,这个话题让我有点困惑。

提前致谢!

最佳答案

是的,它将永远等待。

group 已被捕获,因此不会被释放。而且,很明显,您最终会锁定那个特定的工作线程。由于工作线程非常有限,这比 DispatchGroup 消耗的内存量更值得关注。

如果你想让它超时,使用wait(timeout:) .

关于swift - DispatchGroup 会永远等待吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66031660/

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