linux的C语言开线程后如何归还使用的内存

linux的C语言开线程后如何归还使用的内存,第1张

线程自身用的内存,是在栈上系统自动分配,或自己配置( *** 作系统提供了可编程配置参数,但也是 *** 作系统在管理)。线程运行完成后返回栈内存 *** 作系统会自动回收。需要注意的是,如果是在线程运行中中,使用malloc或 *** 作系统的内存分配函数分配的内存,需要在线程返回前或返回后显示释放。自己编写代码,显示调用free或 *** 作系统提供的内存释放函数。

如楼上所说,在linux系统的缺省配置中,内存足够的情况下,linux不回收buffer 和cache,但在2种情况下, 会使用LRU(least recently used 最近最少使用)算法进行页面的回收:

1、由后台运行的守护进程 kswapd周期性的检查,发现系统内空闲的物理页面数目少于特定的阈值时;

2、要为用户进程分配一大块内存,但系统中没有足够多的物理内存时, *** 作系统会启动内存回收。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7592910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存