社区
C语言
帖子详情
當我在一個線程里調用malloc時,這個函數所用的堆是歸線程所有還是歸進程所有?
Rayking
2003-04-16 08:56:38
當我在一個線程里調用malloc時,這個函數所用的堆是歸線程所有還是歸進程所有?我的意思是,如果我在這個線程里非法操作破壞了堆的結構,會不會影響到其它的線程呢?
...全文
38
9
打赏
收藏
當我在一個線程里調用malloc時,這個函數所用的堆是歸線程所有還是歸進程所有?
當我在一個線程里調用malloc時,這個函數所用的堆是歸線程所有還是歸進程所有?我的意思是,如果我在這個線程里非法操作破壞了堆的結構,會不會影響到其它的線程呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Rayking
2003-04-16
打赏
举报
回复
内存泄漏和堆結構被破壞應該不是一個概念吧
小笨和漂向北方
2003-04-16
打赏
举报
回复
对于WINDOWS来说,每个进程有4GB的空间,所以进程内的线程使用的是该进程的内存空间,而WIN32的堆是属于进程的,也就是说所有属于该进程的线程将共享同一堆空间。
如果想保护数据不受影响,那就应该不使用WIN32的缺省堆,而应该在进程的内存空间中创建自己的堆HeapGreate()
台风双头蛇
2003-04-16
打赏
举报
回复
主要看你把堆破坏成为什么样子了,一般情况来讲,如果你出现了很多地内存泄漏(非常严重),会影响到所在进程的堆内存分配等等诸多问题,同时也会间接的影响到其他进程,因为你的进程中的公共操作,例如IO处理等等。。。。
nKannan
2003-04-16
打赏
举报
回复
这个堆应该是所有线程都可以访问的,所以会的。
Rayking
2003-04-16
打赏
举报
回复
繼續
ckacka
2003-04-16
打赏
举报
回复
而且堆只有一个
ckacka
2003-04-16
打赏
举报
回复
一个进程内的多个线程对于数据是处于共享状态的
你在CreateThread的时候,你的线程函数还不是一样的可以访问其他的外面的数据
eric_uugames
2003-04-16
打赏
举报
回复
堆,即开辟的一块内存空间,应该说它既不属于进程也不属于线程。
如果不同的进程、线程都操作这个堆,是会破坏这个结构的。
hello_wyq
2003-04-16
打赏
举报
回复
不会的,现在的os都是保护模式。
Malloc
函数的线程安全与可重入性分析
我们知道一个函数要做到线程安全,需要解决多个线程调用函数时访问共享资源的冲突。而一个函数要做到可重入,需要不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不可重入函数。
malloc
函数...
malloc
的线程安全与signal使用
malloc
的陷阱(内核态与用户态、系统调用与C库调用、可重入与不可重入)
原因:为什么
malloc
本身是线程安全函数(man手册也说明了),但是signal中使用却会产生错误与陷阱,线程是调用
malloc
并执行,signal也是执行
malloc
,可是为什么是不安全的? 背景知识:这4个部分留给初学者自己查...
线程与进程,你真得理解了吗
相信大家面试时一定没少被一个问题刁难,那就是进程和线程的区别是什么?这个问题延申开来并不像表面那么简单,今天就来深入一探。 开始前先看一组非常传神的图例,相信可以帮助你更好理解进程与线程的概念: 1 ...
进程栈和线程栈的区别&线程的共享资源和私有资源&线程的工作内存里存放什么&为什么每个线程都需要创建一个栈?
线程共享的环境包括: 进程代码段 进程的公有数据(全局变量,函数里的静态变量) 进程打开的文件描述符 ...进程的当前目录和进程用户ID与进程组ID...程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保
Linux 多线程程序调用
malloc
,backtrace引发死锁问题的调试
信号处理函数必须是可重入函数,否则在多线程设计结构中容易造成不可预知的错误或造成程序死锁。
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章