当前位置:  开发笔记 > 编程语言 > 正文

跨线程的内存分配和释放

如何解决《跨线程的内存分配和释放》经验,为你挑选了1个好方法。

我还在尝试调试一个非常偷偷摸摸的内存损坏问题.我遇到了一段代码,它在一个线程上分配内存并在另一个线程上删除它.

我有一种模糊的感觉,这是错的,但我不确定为什么.线程共享进程内存,对这些结构的访问受到互斥锁的保护,所以我认为一切都会起作用.但是,我有没有看到任何危险?



1> Tall Jeff..:

正如@monjardin的另一个回答所指出的那样,你想要做的事情本身没有任何错误.

作为一个额外的想法,你没有提到平台等,你正在遇到这个问题,但如果多线程对你和/或你正在使用的这个应用程序是新的,你想要确保标准支持您正在使用的库是库的线程安全版本.在许多环境/平台中,它们都具有开发人员可用的支持库的单线程和多线程版本.如果您正在使用线程但链接到库的单线程版本,则可能会发生许多不好的事情.例如,在malloc()free()的单线程支持库中它不会对堆进行互斥保护(作为优化).库的多线程版本会向堆管理器添加互斥保护,以支持一次操作堆的多个线程.(这只是一个例子).

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有