美文网首页
java静态方法的线程安全问题

java静态方法的线程安全问题

作者: dinel | 来源:发表于2020-06-30 17:56 被阅读0次

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

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

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

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

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

相关文章

  • java静态方法的线程安全问题

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

  • java 单例设计模式

    1.传统的两私有一公开(私有构造方法、私有静态实例(懒实例化/直接实例化)、公开的静态获取方法)涉及线程安全问题(...

  • Java并发之synchronized

    Java多线程同步关键词是常用的多线程同步手段。它可以修饰静态类方法,实例方法,或代码块。修饰static静态方法...

  • volatile关键字

    线程安全问题 Java多线程带来的一个问题是数据安全问题,判断一段Java代码是否有线程安全问题可从以下几点入手:...

  • 线程安全问题

    线程安全问题 本篇主要讲解 线程安全问题,演示什么情况下会出现线程安全问题,以及介绍了 Java内存模型 、vol...

  • Java-多线程(二)线程的状态和线程安全问题

    线程的状态 线程安全问题 案例:售票的例子。 使用同步代码块 使用同步函数 非静态同步函数使用的锁是this 静态...

  • java static方法 引用static属性 存在线程安全问

    java static方法 引用static属性 存在线程安全问题-原理分析 测试代码 运行结果 结果分析: 通过...

  • java 线程安全问题的解决办法 和死锁

    线程安全问题的解决办法 线程 安全问题的解决方案:sun提供了线程同步机制让我们解决这类问题的。 java线程同步...

  • 线程

    #匿名内部类 构造方法 1.多个线程访问共享资源的时候,可能引起线程安全问题。 1.1 锁对象 :Java中任意一...

  • java多线程(壹)——线程与锁

    线程与线程安全问题 所有的线程安全问题都可以概况为三个点:原子性,可见性、有序性——————by Java多线程编...

网友评论

      本文标题:java静态方法的线程安全问题

      本文链接:https://www.haomeiwen.com/subject/oeoxqktx.html