博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在多线程中使用静态方法是否有线程安全问题
阅读量:6479 次
发布时间:2019-06-23

本文共 544 字,大约阅读时间需要 1 分钟。

   类的成员分为两类,静态成员(static member)和实例成员(instance member)。静态成员属于类,实例成员则属于对象,即类的实例。

    简单讨论一下在一个类中使用静态字段(static field)和静态方法(static method)是否会有线程安全问题。 

    我们在知道, 静态字段(static field)和静态方法(static method)的调用是通过类来调用。静态方法不对特定的实例操作,只能访问静态成员。实例方法可对特定的实例操作,既能访问静态成员,也能访问实例成员。

    那么,在多线程中使用静态方法是否有线程安全问题?这要看静态方法是是引起线程安全问题要看在静态方法中是否使用了静态成员。

    因为,在多线程中使用同一个静态方法时,每个线程使用各自的实例字段(instance field)的副本,而共享一个静态字段(static field)。所以说,如果该静态方法不去操作一个静态成员,只在方法内部使用实例字段(instance field),不会引起安全性问题。但是,如果该静态方法操作了一个静态字段,则需要静态方法中采用互斥访问的方式进行安全处理。

 

转载于:https://www.cnblogs.com/softidea/p/3925125.html

你可能感兴趣的文章
ajax.js
查看>>
移动端 h5开发相关内容总结(三)
查看>>
Windows下解压分卷压缩方法
查看>>
double,float,BigDecimal类型数值的操作
查看>>
java_Hashtable实例
查看>>
git学习之时光穿梭机
查看>>
jquery总结(来自于一个讲师的总结)
查看>>
Python语言十分钟快速入门
查看>>
set集合
查看>>
nginx事件模块 -- 第三篇
查看>>
SAD SATD转过来的
查看>>
访问修饰符
查看>>
计算机概述
查看>>
ubuntu 安装mysql-python和 python-ldap,navicate 问题
查看>>
iOS真机调试
查看>>
迭代器
查看>>
几个简单DP(递推)集合
查看>>
SVN服务器的搭建和使用
查看>>
mvc中枚举的使用和绑定枚举值到DropDownListFor
查看>>
多目标跟踪的评价指标
查看>>