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 }}}
展开
展开全部
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 }
}
}
代码最好做好格式化,这点很重要,不管是提问,还是平时写代码。
追问
提问的时候本来是已经格式化好的,一提交就成这个样子了。我忽略了一个重要的问题。。按照你这样的思路在多线程下就不会有线程安全问题吧?
追答
会有啊,因为大部分的多线程都是异步的。
最好把线程和同步异步的知识一起看。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询