消息队列的参数问题,与内存回收机制相关
比如A线程有函数A,B
SentA(parm1) //parm1 不是指针,是一个值
{
SentAsynMsg(&parm1);
}
SentB() //parm1 不是指针,是一个值
{
parm1 = 0x1;
SentAsynMsg(&parm1);
}
对于上面两个伪函数,都是发送异步消息,带的参数均在栈空间内,接收方都是从收到地址去取值,那么是不是有可能接收到错误的值?
我个人分析,这两种方式都是有问题的,这两种函数,在函数执行完均会回收参数和局部变量,所以只要接收方取值的时候,发送方的函数被系统回收了,取到的值就是错误的值。
看官觉得呢?
SentA(parm1) //parm1 不是指针,是一个值
{
SentAsynMsg(&parm1);
}
SentB() //parm1 不是指针,是一个值
{
parm1 = 0x1;
SentAsynMsg(&parm1);
}
对于上面两个伪函数,都是发送异步消息,带的参数均在栈空间内,接收方都是从收到地址去取值,那么是不是有可能接收到错误的值?
我个人分析,这两种方式都是有问题的,这两种函数,在函数执行完均会回收参数和局部变量,所以只要接收方取值的时候,发送方的函数被系统回收了,取到的值就是错误的值。
看官觉得呢?
...全文
相关推荐
nodeJs内存泄漏问题详解
由于内存泄漏在Node.js中非常的常见,可能在浏览器中应用javascript时,对于其内存泄漏不是特别敏感,但作为服务器语言运行时,你就不得不去考虑这些问题。
Redis入门实战:内存优化与垃圾回收机制
1.背景介绍 随着互联网快速发展和移动互联网的兴起,基于分布式计算技术的数据存储需求越来越多,例如分布式缓存、分布式消息队列、高并发场景下的数据库等。而传统的基于磁盘的缓存服务如Memcached和Redis等,在提供类似功能时,往往需要占用大量的内存资源。因此,如何对Redis进行合理配置,提高内存利用率,降低内存碎片,是值得关注的话题。
Go-Sandglass一个分布式水平可伸缩持久化时间排序的消息队列
Sandglass一个分布式,水平可伸缩,持久化,时间排序的消息队列
java面试相关文档
java面试相关文档
Android垃圾回收机制解决内存泄露问题
主要介绍了Android垃圾回收机制解决内存泄露问题的相关资料,需要的朋友可以参考下


驱动开发/核心开发
