AUParameterTree 释放导致死锁

Posted

技术标签:

【中文标题】AUParameterTree 释放导致死锁【英文标题】:AUParameterTree dealloc causing deadlock 【发布时间】:2018-05-14 17:16:18 【问题描述】:

我在后台线程中遇到以下堆栈跟踪崩溃:

我的应用包含分配给给定音频文件集的音频单元。当给定的一组音频文件发生变化时,所有当前的音频单元都会被释放,并为新组创建新的音频单元。间歇性地,在音频单元的释放过程中,会发生上述崩溃。似乎当音频单元的 AUParameterTree 被释放时,会发生死锁。以前有人见过这样的症状吗?如果是这样,是什么导致了死锁,如何预防?

【问题讨论】:

【参考方案1】:

您的音频单元或音频图表是否正在运行或刚刚停止?如果是这样,那可能是问题的一部分。

因为音频单元在它们自己的单独线程中运行,并且需要时间来耗尽,所以在音频单元或其任何资源之前,您可能需要等待一段时间(为了安全起见可能需要 1 或 2 秒?)可以安全地释放。

【讨论】:

以上是关于AUParameterTree 释放导致死锁的主要内容,如果未能解决你的问题,请参考以下文章

多线程死锁

JAVA死锁

mysql 发生死锁问题请求帮助

死锁产生的原因以及解决方法

Python多线程之死锁

C# 死锁的原理与排查方法详解