gpt4 book ai didi

multithreading - 线程间通信期间的内存管理职责

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

如果线程A将对对象的引用发送到线程B,例如使用performSelector:onThread:withObject:waitUntilDone,那么应该如何进行内存管理?调用线程alloc应该是对象,而调用线程release是对象吗?

编辑:

事实证明,performSelector:onThread:withObject:waitUntilDone会保留对象,直到完成选择器(将在另一个线程的运行循环上调用该选择器)为止。因此,调用线程应先分配,然后再调用performSelector,然后释放。

最佳答案

一种可能防止过多泄漏或乱码的方法是绕过使用boost::shared_ptr包装的内存。当然,只要有多个线程具有它们可以访问的shared_ptr,就可以保证内容的使用是线程安全的,这将确保离开有问题的内存最终用户的范围将导致释放该内容。

关于multithreading - 线程间通信期间的内存管理职责,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3605520/

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