Java多執行緒-執行緒關鍵字(二)

  • 2022 年 11 月 1 日
  • 筆記

Java中和线程相关的关键字就两: volatile 和 synchronized 。 volatile以前用得较少,以后会用得更少(后面解释)。它是一种非常轻量级的同步机制,它的三大特性是: 1、保证可见性,即强制将CPU高速缓存的数据立即写入主存,会导致其他CPU核中对应的高速缓存内容无效,就像 …

Continue Reading

Java:既然有了synchronized,為什麼還要提供Lock?

  • 2022 年 10 月 31 日
  • 筆記

摘要: 在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢? 本文分享自华为云社区《 【高并发】Java中提供了synchronize …

Continue Reading

詳細了解 synchronized 鎖升級過程

前言 首先,synchronized 是什么?我们需要明确的给个定义—— 同步锁 ,没错,它就是把 锁 。 可以用来干嘛?锁,当然当然是用于线程间的同步,以及保护临界区内的资源。我们知道,锁是个非常笼统的概念,像生活中有指纹锁、密码锁等等多个种类,那 synchronized 代表的锁具体是把什么锁 …

Continue Reading

Springboot在有鎖的情況下如何正確使用事務

  • 2021 年 10 月 9 日
  • 筆記

1. 概述 老话说的好:想要赚钱,就去看看有钱人有什么需求,因为有钱人钱多,所以赚的多。 言归正传,在Java项目的研发中,“锁”这个词并不陌生,最经典的使用场景是商品的超卖问题。 很多Java小白,通常会认为,给代码加上一把“锁”,就能解决多扣库存问题,却忽略了数据库事务的问题,今天我们就来做一个 …

Continue Reading

synchronized Lock(本地同步)鎖的8種情況

  • 2021 年 9 月 23 日
  • 筆記

Lock(本地同步)锁的8种情况 总结与说明: * 题目: * 1.标准访问,请问是先打印邮件还是短信 Email * 2.email方法新增暂停4秒钟,请问是先打印邮件还是短信 Email * 3.新增普通的hello方法,请问先打印邮件还是hello hello * 4.两部手机,请问先打印邮件 …

Continue Reading

synchronized底層原理

  • 2021 年 5 月 24 日
  • 筆記

synchronized底层原理 通过反编译class文件,可以看到synchronized最关键的部分是monitor对象。 又因为synchronized关键字使用的方法不同,可以将monitor对象使用分为以下两种情况。 synchronized放在方法签名上 public synchroni …

Continue Reading

面試官:你說說ReentrantLock和Synchronized區別

  • 2021 年 1 月 26 日
  • 筆記

大家好!又和大家见面了。为了避免 面试 尴尬,今天同比较通俗语言和大家聊下ReentrantLock和Synchronized区别! 使用方式 Synchronized可以修饰实例方法,静态方法,代码块。 自动释放锁。 ReentrantLock一般需要try catch finally语句,在tr …

Continue Reading

排隊打飯:公平鎖和非公平鎖(面試)

简介 有个小伙伴最近咨询我,前段时间他被 面试官 问了 synchronized 是 公平锁还是非公平锁 ?当时就蒙圈了,最后面试结果可想而知,今天我们就用一个通俗的案例加上代码来说明 公平锁 和 非公平锁 。其实公平锁这个概念是JUC工具包才有的,比如ReentrantLock才有公平锁的概念,这 …

Continue Reading

母雞下蛋實例:多執行緒通訊生產者和消費者wait/notify和condition/await/signal條件隊列

  • 2020 年 12 月 31 日
  • 筆記

简介 多线程通信一直是高频 面试 考点,有些面试官可能要求现场手写 生产者/消费者 代码来考察多线程的功底,今天我们以实际生活中母鸡下蛋案例用代码剖析下实现过程。母鸡在鸡窝下蛋了,叫练从鸡窝里把鸡蛋拿出来这个过程,母鸡在鸡窝下蛋,是生产者,叫练捡出鸡蛋,叫练是消费者,一进一出就是线程中的生产者和消费 …

Continue Reading