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

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

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

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

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

java static 线程安全_java静态方法的线程安全问题相关推荐

  1. java 静态方法 多线程_Java静态方法的线程安全性问题

    如果多个线程同时访问同一个静态方法,后一个线程传递的参数值会覆盖前一个线程传递的参数值吗?代码示例如下: 被访问的静态资源: public class C { public static void t ...

  2. java怎样中断函数_Java中断一个线程操作示例

    本文实例讲述了Java中断一个线程操作.分享给大家供大家参考,具体如下: 一 点睛 中断一个线程,意味着该线程在完成任务之前,停止它正在进行的一切当前的操作. 有三个比较常用的函数: interrup ...

  3. java线程池_Java 并发编程 线程池源码实战

    作者 | 马启航 杏仁后端工程师.「我头发还多,你们呢?」 一.概述 笔者在网上看了好多的关于线程池原理.源码分析相关的文章,但是说实话,没有一篇让我觉得读完之后豁然开朗,完完全全的明白线程池,要么写 ...

  4. java多线程 线程安全_Java中的线程安全

    java多线程 线程安全 Thread Safety in Java is a very important topic. Java provides multi-threaded environme ...

  5. java 守护线程 作用_java中守护线程的一些概念和用法

    网上的资料中,守护线程的功能一般都是"只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用 ...

  6. java 子线程退出_java – 在子线程完成执行之前主线程将退出吗?

    我读了2篇文章 在上面的文章中,在"线程终止"段中,它在Red中声明"如果父线程终止,它的所有子线程也会终止". 在上面的文章中,该页面的最后一行指出" ...

  7. java多线池_java多线程之线程池

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  8. java 队列线程池_JAVA工作队列与线程池

    为什么要使用线程池? 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到达服务器,这种方式可能是通过网络协议 ...

  9. java 静态对象数组_Java静态方法和实例方法 java中的数组作为形参传入

    原标题:Java静态方法和实例方法 java中的数组作为形参传入 Java静态方法和实例方法 java中的数组作为形参传入 Java虚拟机 启动一个Java程序的时候,会诞生一个虚拟机实例,当程序关闭 ...

最新文章

  1. 我是怎么使用最短路径算法解决动态联动问题的
  2. Spring boot配置类
  3. 【VMCloud云平台】Demo应用搭建(二)
  4. php获取表单信息的代码_PHP获取HTML文件名表单数据等
  5. [九省联考2018]秘密袭击coat
  6. 矩池云conda创建指定cuda cudnn tf版本的虚拟环境
  7. IOS开发常用插件(二)
  8. msf php脚本提权,[原创]WEB安全第六章 提权篇16 metasploit linux提权
  9. STM32——整形变量转换为字符变量并通过串口发送出去
  10. 博世BMI160六轴传感器I2C通信配置
  11. WampServer 3.1.0 所需VC运行库下载及安装说明
  12. 龙芯LoongArch电脑上用dh-make打包deb包
  13. 使用scrapy爬取北京公交
  14. 第一章 Python基础
  15. 49. 把字符串转换成整数
  16. 今日网易邮箱126无法访问
  17. 知乎zhihu:Python爬取某个问题下所有含有给定关键词的回答
  18. bugzilla 安装
  19. android安全问题(八)伪造短信(利用原生android4.0漏洞)
  20. 电脑不识别u盘的解决方法

热门文章

  1. 相亲交友系统-海外交友-社交陪玩系统上线
  2. 乔梁老师的持续交付七巧板和三步法思维实践
  3. 8Manage:如何变革性地加强企业的采购管理能力?
  4. React Draggable 实现拖拽
  5. react-draggable实现拖拽详解
  6. linux grud文件丢失,linux命令:grub 文件详解及grub修复,系统常见故障修复(示例代码)...
  7. MOS管的CISS 和Qg
  8. SpringBoot配置文件中文乱码
  9. 以30字符宽居中输出python字符串_python基础--字符串
  10. Java定时备份MySql数据库 Java定时备份数据库 Java备份MySql数据库 java定时备份mysql数据库 java备份mysql数据库