java多线程调用静态方法安全吗?

静态方法很好用,直接就可以用了,那么如果多线程调用怎么办?会出现什么?

静态类中static 修饰的参数,如果是全局变量,该变量会在方法中被修改。那么就是不安全的。

原因是:多线程调用静态方法,会复制一份代码,所以方法是安全。但静态变量在java 虚拟机中是唯一。如果在方法中修改全局静态变量,就会线程不安全。

顺便说一句:在程序开发过程中经常会遇到有关资源的释放问题。比如文件流什么,数据库连接。使用之后注意关闭。从内层往外层关闭(有很多资源的关闭接口实现不是很好,如果单单关闭外层,内层仍然存在,如果资源连接存在线程,那么这个线程就不会被关闭。一段时间之后,系统就会因为线程过多,关闭。)