gpt4 book ai didi

java - 将 "init"中定义的 servlet 实例变量标记为 "volatile"

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:05 26 4
gpt4 key购买 nike

是否有必要将所有 servlet 实例变量标记为“volatile”(或从同步部分访问它们)?包括那些在“init”方法中定义的,之后没有修改的?

我的理解是“init”方法被一个线程调用,而该变量会被另一个线程访问,所以看起来很有必要。或者可能不是?是否有任何机制可以保证在“init”方法完成时实例变量的当前值对所有其他线程可见?

最佳答案

servlet 容器将确保在 servlet 的初始化和它们的调用之间存在内存屏障。你不应该做任何事情。

注意:我没有在规范中找到这样的要求,但我认为容器不这样做是失败的。顺便说一句,在GenericServlet中,init方法初始化的实例变量ServletConfig config没有被标记为volatile。

关于java - 将 "init"中定义的 servlet 实例变量标记为 "volatile",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com