码迷,mamicode.com
首页 > 其他好文 > 详细

不要在类的函数中使用static字段

时间:2014-06-13 06:35:37      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   数据      问题   

昨天在做存储服务的压力测试,后台是采用多线程根据玩家唯一标识做线程划分的,在测试的过程中发现,进行存储的时候,会发生玩家数据错乱的情况。

一开始怀疑是上层逻辑在处理数据的时候发生了错乱,导致保存的时候玩家数据是乱的了。

后来经过详细的日志跟踪,发现其实在存储之前上层发送过来的数据是完全正确的,在存储过后,再读取出来,数据就是乱的了。在这里要说下log4cplus还是非常优秀的日志库,能够在日志中记录线程ID,对于多线程的调试能起到一定的帮助作用

仔细看了一下代码,发现原来是处理数据存储的对象函数里面为了减少栈的大小,使用了一个静态的buf

对象本身虽然是每个线程里面一个,但是buf却是共享的,这就导致了存储sql拼装的时候,发生了错乱了。

对此错误,记录一下,防止以后发生类似的问题。

不要在类的函数中使用static字段,布布扣,bubuko.com

不要在类的函数中使用static字段

标签:style   color   使用   数据      问题   

原文地址:http://www.cnblogs.com/chobits/p/3781282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!