面试题:synchronized 与 Lock的区别?

区别:

相同:二者都可以解决线程安全问题
不同:synchronized机制在执行完相应的同步代码以后,自动的释放同步监视器
Lock需要手动的启动同步(lock()),同时结束同步也需要手动的实现(unlock())

解决线程安全问题:

优先使用顺序:
Lock –> 同步代码块(已经进入了方法体,分配了相应资源) –> 同步方法(在方法体之外)

Original: https://www.cnblogs.com/hanhanz/p/16515733.html
Author: 憨憨BEEA
Title: 面试题:synchronized 与 Lock的区别?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610606/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • hibernate.validator 与 jackson

    1、使用hibernate.validator校验非空,在FormData类中 name字段上面加@NotEmpty java;html-script:false;quick-co…

    Java 2023年6月13日
    074
  • Java8 利用Lambda处理List集合

    List list = new ArrayList(); User user1 = new User("第一位","用户1"); list….

    Java 2023年5月29日
    059
  • 游戏协议模拟测试工具(TcpEngine)使用简介

    功能介绍 在有的网络开发需要走二进制流协议场景,比如网络游戏开发,在开发阶段,前端和后端协商好协议后就分别开发。在开发写代码的时候,有时需要对端发送一条完整的协议过来触发一下自己的…

    Java 2023年6月5日
    070
  • 【Java】Lucene检索引擎详解

    基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文…

    Java 2023年5月29日
    071
  • Apache Flink系列-⑤应用程序构建块

    应用程序构建块 有状态函数为构建事件驱动的应用程序提供了一个框架。这里,我们将解释有状态函数体系结构的重要方面。 事件入口 有状态函数应用程序直接位于事件驱动的空间中,因此自然要从…

    Java 2023年6月5日
    080
  • 帮助你更好的理解Spring循环依赖

    网上关于Spring循环依赖的博客太多了,有很多都分析的很深入,写的很用心,甚至还画了时序图、流程图帮助读者理解,我看了后,感觉自己是懂了,但是闭上眼睛,总觉得还没有完全理解,总觉…

    Java 2023年6月5日
    088
  • 如何自定义一个Collector

    Collectors类提供了很多方便的方法,假如现有的实现不能满足需求,我们如何自定义一个Collector呢? Collector接口提供了一个of方法,调用该方法就可以实现定制…

    Java 2023年6月13日
    055
  • 【主流技术】Spring Boot中的微信支付(小程序)

    前言 微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。 logo 一、申请流程和步骤 图1-1 注册微信支付账号 获取微信小程序APPID…

    Java 2023年6月6日
    0108
  • Java—Stream入门

    学习Stream的目的 函数式编程渐渐变成主流,而Stream是函数式编程的重点。 相对于传统的编程方式,代码更为简洁清晰易懂。 使得并发编程变得如此简单。 有效的避免了代码嵌套地…

    Java 2023年6月7日
    070
  • 动态规划算法(DP,Dynamic Programming)

    动态规划算法(DP,Dynamic Programming) 文章目录 动态规划算法(DP,Dynamic Programming) 前言 一、递归到DP的一般转化方法 二、DP解…

    Java 2023年6月5日
    075
  • 你真的了解线程池ThreadPoolExecutor吗?

    背景 最近被别人问到有关线程池的问题,自己没有答上来,自己觉得之前还是比较了解线程池的,所以又重新学习了一下这块内容,然后记录一下与大家分享。 从两个问题说起 线程池线程数增加过程…

    Java 2023年6月7日
    068
  • Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,…

    Java 2023年6月16日
    083
  • Fizz网关入门教程-快速聚合多接口

    背景介绍 先看一张图,页面一共调用了20多个后端接口,页面出现了明显的卡顿,而且每6个请求一组,只有前一组返回后才执行下一组。看到请求是pending状态,很容易以为是后端接口的问…

    Java 2023年6月9日
    083
  • Java FTP下载文件

    依赖的包 <dependency> <groupid>commons-net</groupid> <artifactid>commo…

    Java 2023年6月5日
    079
  • 我是如何将一个老系统的kafka消费者服务的性能提升近百倍的

    大家好,又见面了~ kafka作为一种高吞吐量的分布式发布订阅消息系统,在业务系统中被广泛的使用。 如果问你,如何提高kafka队列中的消息消费速度呢?答案很简单,topic多分几…

    Java 2023年6月7日
    079
  • JDBC

    概念:JDBC即Java DataBase Connectivity,Java数据库连接,Java语言操作数据库 本质:是官方(sun公司)定义的一套所有关系型数据库的规则,即接口…

    Java 2023年6月6日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球