概念:java 同步

  1. synchronized:是 Java 中的关键字,用于实现同步访问共享资源。当一个线程获得了对象的锁(也称为监视器锁)时,其他试图获取该锁的线程将被阻塞,直到该线程释放锁为止。synchronized 可以用于修饰方法或代码块,以确保在同一时刻只有一个线程能够执行被修饰的代码区域,从而保证了线程的安全性。

  2. ReentrantLock:是 Java 中的一个类,用于实现显示锁(也称为互斥锁)。与 synchronized 相比,ReentrantLock 提供了更灵活的锁定机制,可以实现可重入、定时、可中断、公平和非公平等特性。使用 ReentrantLock 可以更精确地控制锁的获取和释放,并且提供了更多的扩展功能。

  3. Volatile:是 Java 中的关键字,用于修饰变量,用于确保变量的可见性。当一个变量被 volatile 修饰时,对该变量的写操作会立即被其他线程可见,保证了多个线程之间对该变量的可见性。Volatile 关键字通常用于标记一些状态标志位或者计数器等,它的作用是告诉编译器不要对这个变量进行缓存优化,每次都直接从主存中读取该变量的值。

这些机制和关键字的存在是为了确保多线程并发执行时的正确性和稳定性。由于多线程环境下的竞态条件、内存可见性问题和线程安全性问题会导致程序的不确定性和错误,因此需要通过这些机制来保证多线程程序的正确性。不同的场景和需求可能会选择不同的机制来解决并发问题,以满足程序的性能和可维护性要求。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值