误以为是同一静态变量,test改变常量的值,thrift就能取到,殊不知,test和thrift是两个
进程,test和thrift获取的同一静态变量是存到两个进程的两个静态块中,不能共用。
那为什么用client调用thrift后,改变静态变量后,thrift就会生效呢?
是因为client端调用的是thrift提供的接口,是用tcp协议提供的接口,实现了线程间的通信,
用test测试的时候,直接调用的是thrift应用源码的方法,实际是创建了另一个进程。
本文解释了为何在不同进程中修改同一静态变量时会出现不一致的现象,并探讨了通过客户端调用远程服务时如何实现变量更新。
9069

被折叠的 条评论
为什么被折叠?



