区别:
同步方法默认用this或者当前类class对象作为锁;
同步代码块可以选择以什么来加锁,比同步方法要更细颗粒度,我们可以选择只同步会发生同步问题的部分代码而不是整个方法;
同步方法使用关键字 synchronized修饰方法,而同步代码块主要是修饰需要进行同步的代码,用 synchronized(object){代码内容}进行修饰;

为何使用同步?
java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(增删改查),将会导致数据的不准确,相互之间产生冲突。类似于在atm取钱,银行数据确没有变,这是不行的,要存在于一个事务中。因此加入了同步锁,以避免在该线程没有结束前,调用其他线程。从而保证了变量的唯一性,准确性。
1.同步方法:
即有synchronized (同步,美 ['sɪŋkrənaɪzd] ) 修饰符修饰的方法。
由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用给方法前,要获取内置锁,否则处于阻塞状态。
例:public synchronized getMoney(){}
注:synchronized修饰静态方法,如果调用该静态方法,将锁住整个类。

2.同步代码块
即有synchronized修饰符修饰的语句块,被该关键词修饰的语句块,将加上内置锁。实现同步。
例:synchronized(Object o ){}

同步是高开销的操作,因此尽量减少同步的内容。通常没有必要同步整个方法,同步部分代码块即可。
同步方法默认用this或者当前类class对象作为锁。
同步代码块可以选择以什么来加锁,比同步方法要更颗粒化,我们可以选择只同步会发生问题的部分代码而不是整个方法。

JAVA 同步方法和同步代码块的区别是什么?相关推荐

  1. java锁方法和锁代码块_java的同步方法和同步代码块,对象锁,类锁区别

    /** * @author admin * @date 2018/1/12 9:48 * 做用在同一个实例对象上讨论 * synchronized同步方法的测试 * 两个线程,一个线程调用synchr ...

  2. cookie里面用到的关键字_晓龙吊打面试官系列:synchronized关键字入门(同步方法与同步代码块)...

    文章目录 一. 线程安全问题 二.synchronized简介 1) 原子性 2) 可见性 3) 有序性 4)可重入 1. 什么是synchronized 2.什么是同步 3.synchronized ...

  3. 从操作系统的PV操作理解JAVA的synchronized同步方法,同步代码块实现,及比较

    也有利于理解操作系统的同步 知识果然是息息相关的 JAVA同样离不开操作系统的原理,不过他体现在虚拟机JVM中 synchronized关键字是同步关键字 首先我们知道在操作系统里 PV两者操作信息量 ...

  4. 同步方法和同步代码块

    2019独角兽企业重金招聘Python工程师标准>>> 打个比方:一个object就像一个大房子,大门永远打开.房子里有很多房间(也就是方法).这些房间有上锁的(synchroniz ...

  5. 同步方法及同步代码块

    synchronized方法和synchronized块 synchronized方法必须获得对象的锁才能执行,否则线程阻塞,方法一旦执行,就独占此锁,直到方法返回才释放锁,后面被阻塞的线程才能获得这 ...

  6. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  7. Java20-day11【实现多线程(进程、线程-调度-控制-生命周期)、线程同步(同步代码块、线程安全、Lock)、生产者消费者(模式概述、案例)】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

  8. 6※、线程同步、同步锁、同步代码块的使用、同步锁释放的时机、ReentrantLock可重入锁、公平锁与非公平锁的区别、什么是死锁、线程间的通信(生产者和消费者模式)

    线程锁 1.※线程的同步:(要确保对象锁是一致的) 1.未使用同步锁的抢票 2.使用了同步锁的抢票 3.线程-同步代码块的使用 4.同步方法和代码块的区别 5.同步锁释放的时机 练习:多线程生产手机 ...

  9. java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解

    本文实例讲述了java同步代码块和同步方法.分享给大家供大家参考,具体如下: 一 点睛 所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况.言外之意是这段代码就像原子一 ...

  10. java中synchronized(同步代码块和同步方法)详解及区别

    问题的由来: 看到这样一个面试题: ? 1 2 3 4 5 6 //下列两个方法有什么区别 public synchronized void method1(){} public void metho ...

最新文章

  1. 计算器,利用灰度图的顶帽扣出数字
  2. Xmanager连接Linux 9的方法
  3. 程序员究竟该如何提高效率
  4. 017 Android加固之APK混淆和保护方式
  5. Sharepoint 2007 用代码聚合所有子网站文章 (populating data sources in code)
  6. eclips mysql jndi_Eclipse +Tomcat配置JNDI数据源
  7. 基础练习 01字串(取位操作)
  8. SQL基础【十八、事物】(sql事物慎用,还是写业务逻辑代码好一些,入伙涉及到更换数据啥的很麻烦!)
  9. 前端学习(3310):redux的state hook对象
  10. POJ 1002 487-3279
  11. Linux驱动(3)--单片机驱动与Linux驱动的区别
  12. 值得收藏的8个Web端组件库
  13. 集合点(掌握)-并发
  14. Java 高阶 —— 相等性比较
  15. 前端脚本API发布 | Java 开源企业信息化建设平台O2OA平台
  16. 校验码的计算方法说明
  17. Linux下载安装Binutils工具集
  18. 牛散村期货:3月春风生 第一周非农财经简阅
  19. 头号英雄 答题助手助力通关赢大奖
  20. 攻防世界题库logmein

热门文章

  1. 学生id号码是什么意思_ID是什么意思?
  2. Onvif协议:门外汉理解ONVIF协议
  3. XRD结果如何做定量相分析
  4. 可靠的自托管「GitHub 热点速览 v.22.37」
  5. 11个思维导图知识点整理帮你决胜考研(基础课和计算机专业课)| 寻找C站宝藏
  6. 深入C++库分析sync_with_stdio实现
  7. 汉王数据导入java环境,怎样把u盆内容导入汉王门禁考勤管理软件
  8. PentaLogix ViewMate Pro v11.16.16破解版
  9. 树莓派3B的摄像头模块
  10. VScode 下载、安装和设置中文界面