1 如果调用的是静态方法,且内部没有使用静态变量,则没有线程安全问题。
为什么呢?因为静态方法内声明的变量是局部变量,它放在java栈中的,每个线程调用时,都会新创建一份,而不会共用一个存储单元。比如这里的inner_result,每个线程都会创建自己的一份,因此不会有线程安全问题。
2 当多个线程执行同一个方法的时候,且使用静态变量时,有可能会出现线程安全问题
多个线程共享一块内存区域,在不加任何保护情况下对其操作就会出现异常结果,因为静态成员(static member)作为公共变量,就是放在共享内存区域的。
帖子还没人回复快来抢沙发