- 在java语言是不推荐使用成员变量的,不当使用并发情况下会造成变量被污染,严重情况下会导致内存泄漏
我的理解:
- go语言并发情况下,每个请求都单独分配一个goroutine来处理,请求响应结束后,该goroutine会被回收,如果有新的请求,会重新创建新的goroutine来处理,所以不会出现上面的问题
你说的是spring框架吧,这个框架是使用依赖注入的,每个类都是单例,所以不能使用成员变量,这样在并发情况下会导致属性比多线程操作。
go里面也存在这种问题,比如,如果你的一个结构体是包级别变量,在多个请求中都操作了这个变量的属性,就会存在并发问题。
其实这个不是语言问题,是框架设计和使用问题。