java 局部静态变量在多线程环境下是否有线程安全问题??

publicclassA{publicvoidmethod01(){//dosomething}publicvoidmethod02(){//dosomething}pu... public class A {public void method01(){ //dosomething}public void method02(){ //dosomething}public void method03(){ static Map map = new TreeMap(); static String x=“”; method4(){ 这里面会给map和x赋值 } method5(){ 这里面会用到map和x } method6(){ 这里面会用到map和x }}} 展开
 我来答
xupeiying
推荐于2016-02-22 · TA获得超过468个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:568万
展开全部
public class  A {
public  void   method01(){
 //dosomething
 }
public  void   method02(){ 
//dosomething
}

//public  void   method03(){   
public  static void   method03(){   // 静态方法里才可以有今天变量
static Map map  = new TreeMap();   
static String  x=“”;
    // 如果你的 method4,5,6是异步的, 5,6得到的值就是不确定的,
    // 有可能是4之前的值,也有可能是4的赋值
    method4(){    这里面会给map和x赋值  } 
    
    method5(){    这里面会用到map和x  }
    method6(){   这里面会用到map和x  }
}
}

代码最好做好格式化,这点很重要,不管是提问,还是平时写代码。 

追问
提问的时候本来是已经格式化好的,一提交就成这个样子了。我忽略了一个重要的问题。。按照你这样的思路在多线程下就不会有线程安全问题吧?
追答
会有啊,因为大部分的多线程都是异步的。

最好把线程和同步异步的知识一起看。
zhongtyler
2013-10-15 · TA获得超过4408个赞
知道大有可为答主
回答量:4384
采纳率:79%
帮助的人:928万
展开全部
只要是static,如果不加同步锁的话,肯定会有多线程安全问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左顾右盼心不安
2013-10-15 · TA获得超过250个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:57.5万
展开全部
java 不支持局部静态变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式