校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > static
题目

多线程访问static修饰的方法或变量,会出现并发问题吗?

解答

1 如果调用的是静态方法,且内部没有使用静态变量,则没有线程安全问题。
为什么呢?因为静态方法内声明的变量是局部变量,它放在java栈中的,每个线程调用时,都会新创建一份,而不会共用一个存储单元。比如这里的inner_result,每个线程都会创建自己的一份,因此不会有线程安全问题。

2 当多个线程执行同一个方法的时候,且使用静态变量时,有可能会出现线程安全问题
多个线程共享一块内存区域,在不加任何保护情况下对其操作就会出现异常结果,因为静态成员(static member)作为公共变量,就是放在共享内存区域的。

C 0条回复 评论

帖子还没人回复快来抢沙发