java static静态方法的并发性

来源:互联网 发布:淘宝帽子店推荐 编辑:程序博客网 时间:2024/06/04 17:50
在做一个web项目的时候需要做一个通用类去处理一些问题,想到这个类很多地方都有用到,又不想每次都new一个,因此就定义了里面的方法是静态方法,然后又因为多个静态方法都用到了同一个对象,结果定义了一个类的全局变量让每个静态方法去调用它,刚开始没什么问题,后来项目上线没多久就挂了,最后发现这样做导致了多线程的并发问题,所以就想在这里记录一下…


下面是一个例子,例如:

public class TestUtil {    private static User user=new User();    public static void setName(String name){        //在静态方法中调用了全局变量并进行了修改操作,线程不安全        user.setUsername(name);    }    public synchronized static void setName1(String name){        //在静态方法中调用了全局变量并进行了修改操作,使用了同步关键字,线程安全        user.setUsername(name);    }}

总结:只要你的静态方法不访问全局变量和类的变量的话,就不会有并发问题


访问全局变量肯定会出现并发问题,这是毫无疑问的 
静态方法内部的变量,都是局部变量,每次调用静态方法时都会重新分配内存空间,所以是安全的


也就是是说只要你的静态方法不访问全局变量的话,就不会有并发问题

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 军拳 军模 军视 漆军 网军 42军 军被 下军 军运开幕式 武汉军运 军开幕式 军运奖牌榜 军运开幕 军运门票 武汉军运时间 知白长宁帝军 军爸爸h 宝贝舒服吗h军哥哥txt 王牌特战之军少追妻 大宁帝军 王牌特战军少追妻 军运时间 军运开幕式门票 安化军风雨大宋 军运会时间 红色娘子军 军爸爸 武汉军运开幕式 军运会中国代表团 军体拳 长宁帝军知白 小家军 中华军网 军报网 军怎么拼音 军网网址 军拼音 军网大全 军的拼音 中国军网主页 集团军