函数内部分析:2 delete的内部执行逻辑深入分析

1692 人浏览 | 时间: 2015-06-23 19:52:50 | 作者: codexia

    delete用来释放通过new创建的内存,想必你已经十分熟悉。你也知道如何使用了。或许你并不清楚,不管如何,都有必要看看内部的实现机制,可以加深理解,让你对使用规则有一个更好的认识,而不是模糊的记忆。


    在delete的内部执行的过程大致如下:
    最先检测的是传入的唯一的一个指针参数,如果指针为空,不管delete多少次都没有关系。因为在内部首先就是判断指针是否为空,如果为空,则直接返回。
    因为new操作是在进程的堆中分配内存的,而一个进程有可能有很多的线程,而进程堆作为一个进程的多个线程的公共资源,访问时必然不能多个线程同时访问,否则会出现重复分配和释放的情况。用术语讲,进程堆就是临界资源。对临界资源的访问,每次只能允许一个访问。因此,一个线程在请求堆分配内存前,是要锁定堆,不允许其他进程操作。加入堆已经有一个线程在访问,

请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0