资讯专栏INFORMATION COLUMN

线程同步之 Synchronized Methods

sourcenode / 1729人阅读

摘要:这保证了该对象的所有状态的改变,对于所有线程是可见的为构造函数添加是语法错误。

Synchronized Methods

线程同步 提供了两种策略

Synchronized Methods

Synchronized Statements

本文介绍 Synchronized Methods

一个例子

使用 synchronized 关键字,使一个方法为 synchronized

public class SynchronizedCounter {
    private int c = 0;

    public synchronized void increment() {
        c++;
    }

    public synchronized void decrement() {
        c--;
    }

    public synchronized int value() {
        return c;
    }
}

添加 synchronized 关键字有两个作用

当一个 synchronized 方法调用并正在执行时,其他线程调用的 synchronized 方法将会阻塞,直到第一个线程下的 synchronized 方法执行结束

当一个 synchronized 方法执行结束后,会为之后的所有阻塞的 synchronized 方法自动建立 happens-before 关系(什么是 happens-before 关系?)。这保证了该对象的所有状态的改变,对于所有线程是可见的

BTW:为构造函数添加 synchronized 是语法错误。因为没有意义。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65222.html

相关文章

  • 线程同步 Synchronized Statements

    摘要:线程同步提供了两种策略本文介绍不过,需要先了解一下同步机制的实现,是围绕被称为的内部实例实现的。在获取到释放这之间,该线程拥有该。当试图请求一个已经被独占的时,其他线程将会阻塞。实现线程同步的另一种方法,就是使用。 线程同步 提供了两种策略 Synchronized Methods Synchronized Statements 本文介绍 Synchronized Statemen...

    Vultr 评论0 收藏0
  • 设计模式单例模式

    摘要:这种情况带来的后果是程序两次创建了对象,这并不符合我们对单例模式的定义。实现的三个特性自由序列化线程安全保证单例。其次,有且仅有的构造器,防止外部的额外构造,这恰好与单例模式吻合。 单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。当系统需要某个类只能有一个实例时,就可以采用单例模式。 保证单例模式仅有一个实例的核心思想是构造方法私有化,即不允许外部调用该类的构造方法。基于...

    xuweijian 评论0 收藏0
  • Java基础线程Thread

    摘要:在程序开发中一定遇到并发编程的场景虽然我们大部分时间并不直接使用但是是多线程的基础面试中也会总是被问到与线程有关的问题那么线程都有哪些知识呢最近在研究线程的源码的时候也总结了关于线程一些基本知识线程是什么线程是轻量级的进程是操作系统调度任务 在程序开发中, 一定遇到并发编程的场景, 虽然我们大部分时间并不直接使用Thread, 但是Thread是多线程的基础, 面试中也会总是被问到与线...

    tomlingtm 评论0 收藏0
  • 并发基础

    摘要:关于,这个方法只会唤醒一个线程,并且不允许指定唤醒哪个线程,这是可能会发生死锁的。使用不可变对象降低了垃圾回收所产生的额外开销,同时也可以减少一些为了维护在并发中的的代码开销。 前言 跟着 The Java Tutorials 把并发的一些基础过了一遍,发现仍然还是有很多不清楚的地方,主要是因为平常没有机会实际应用吧,理论知识要有,实践也很重要,哪怕是写些小 demo 也可以的。 虽然...

    Warren 评论0 收藏0
  • java-实战java高并发程序设计-ch3JDK并发包

    摘要:并发包参考多线程的同步协助同步控制扩展功能重入锁之前重入锁性能好于但开始优化现在二者的性能相差不大。倒计时器的扩展循栅栏。做好异常处理工作。线程池的内部实现该部分待看书 JDK 并发包 参考:> https://github.com/chengbingh... 3.1 多线程的同步协助:同步控制 3.1.1 synchronized 扩展功能:重入锁jdk1.5之前重入锁Reentra...

    fox_soyoung 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<