Java中的锁以及synchronized解决需要同步问题(附加案例和代码)

锁的概念

什么是锁 锁的啥 锁的代码实现

定义

在这里插入图片描述
引入《Java核心技术 卷1 基础知识 原书第10版》定义
在这里插入图片描述
引入《Java并发编程实战》定义
我的理解:
锁就是当多个线程要使用
一个代码块
方法

的时候,需要按照一定的顺序去使用,特别是这个代码里面有一些可以共同的资源(共享变量)的时候,不让代码出现信息不一致的情况(并发干扰)
举例说明1:我们去厕所的时候,得把门上锁,一个人使用完充水后,再另外一个人使用,不然就有问题…
就是在做一件事情的时候,按照期望的顺序去做,这个时候需要加锁,锁的目的是并发时候有顺序执行
距离说明2:当去便利店买东西的时候,我们需要排队等待共用的一个收银机,当一个人在结账的时候,另外一个人需要等前面结完账,才能给下一个人服务,这个结账机就加了锁,属于共享资源

synchronized关键字

在这里插入图片描述
引入《Java核心技术 卷1 基础知识 原书第10版》定义

内部锁是什么意思?

我的理解 就是每个对象上都有锁,这个锁主要是代码块或者对象的方法,静态方法是锁类,因为静态方法是类级别的,类只会创建一次,动态方法是锁对象
这个锁的源头:JVM 提供机制把synchronized关键字变成相应的指令

synchronized底层实现

在这里插入图片描述
引用

https://www.cnblogs.com/flyinglion/p/15142362.html

引入问题

使用它前,我们先看一个例子
顾客类

package com.mark.duan.sync;

import java.sql.Timestamp;
import java.util.Date;

public class Custom {
   
    //模拟顾客去便利店结账
    public static void main(String[] args) 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值