同步代码块和同步方法有什么区别

区别是:同步代码块即有synchronized修饰符修饰的语句块,被该关键词修饰的语句块,将加上内置锁,实现同步。同步方法即有synchronized修饰符修饰的方法,当用此关键字修饰方法时,内置锁会保护整个方法。在调用给方法前,要获取内置锁,否则处于阻塞状态。

同步代码块和同步方法有什么区别-Worktile社区

java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(增删改查),将会导致数据的不准确,相互之间产生冲突。类似于在atm取钱,银行数据确没有变,这是不行的,要存在于一个事务中。因此加入了同步锁,以避免在该线程没有结束前,调用其他线程。从而保证了变量的少数性,准确性。

同步方法:

即有synchronized (同步,美 [‘sɪŋkrənaɪzd] ) 修饰符修饰的方法。

由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用给方法前,要获取内置锁,否则处于阻塞状态。

例:public synchronized getMoney(){}

注:synchronized修饰静态方法,如果调用该静态方法,将锁住整个类。

同步代码块

即有synchronized修饰符修饰的语句块,被该关键词修饰的语句块,将加上内置锁。实现同步。

例:synchronized(Object o ){}

同步是高开销的操作,因此尽量减少同步的内容。通常没有必要同步整个方法,同步部分代码块即可。

同步方法默认用this或者当前类class对象作为锁。

同步代码块可以选择以什么来加锁,比同步方法要更颗粒化,我们可以选择只同步会发生问题的部分代码而不是整个方法。

延伸阅读:

什么是Java

Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。

使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

文章标题:同步代码块和同步方法有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37840

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月12日 下午4:46
下一篇 2023年2月12日 下午4:48

相关推荐

  • 探索物业智能化管理系统的种类

    本文主要介绍了物业智能化管理系统的种类。全文将分为四部分:1、什么是物业智能化管理系统;2、物业智能化管理系统的种类;3、智能化管理系统的优势;4、智能化管理系统的发展趋势和挑战。本文将帮助您全面了解物业智能化管理系统的种类及其相关知识。 1、什么是物业智能化管理系统 物业智能化管理系统是一种借助先…

    2023年8月4日
    47400
  • oa男装旗舰店

    标题:OA男装旗舰店 在线零售业兴起便捷化购物体验、OA男装旗舰店突破性地融入数字技术提升消费者体验、男装品牌在不断强化品牌形象与忠诚度上采取策略。OA男装旗舰店利用互联网平台,为客户提供在线选购高品质男装的便捷方式。店铺集成了虚拟试衣功能、个性化推荐系统以及快速物流配送服务,减少了实体试穿的必要性…

    2024年1月17日
    38600
  • 编程语言中布尔值true,false和int类型1,0的区别

    区别就是这是两种完全不同的类型。类型不同,不管值是否是相同的,它就是不同,不应该把他们混为一谈。当然有些时候,编程语言的实现的过程中,它可能会比如一个bit用0来代表false, bit为1来代表true,但是从本质上说,这就是两个完全不同的类型,不能认为0==false,或者1==true。 区别…

    2023年2月20日
    84900
  • 多项目如何管理

    掌控多项目进程,不仅要注重策略与资源配置,还得对团队动态和时间线有严谨调控。1、设定明确目标;2、优化资源分配;3、实施有效沟通;4、采取灵活策略。余下内容将深入阐释项目管理工具对项目成功的决定性作用。 一、确立项目目标 识别项目要旨是多项目管理的起点。每项任务须有明晰目标,确保所有参与者朝同一方向…

    2024年1月8日
    20900
  • sda sdb区别

    sda sdb区别是:sda表示的是scsi硬盘的名列前茅个磁盘设备,sdb表示的是scsi硬盘的第二个磁盘设备。其中sd代表的就是scsi硬盘,每个scsi磁盘上的分区通过在磁盘名后面加上一个十进制数字表示,例如sda1和sda2表示系统中名列前茅个SCSI磁盘驱动器的名列前茅个和第二个分区。 s…

    2023年1月31日
    2.6K00
  • 25帧和30帧的区别

    25帧和30帧的区别在于25帧就是一秒有25个图片连续出现,30帧就是一秒有30个图片连续出现,帧数越大清晰度越高当然占用内存也越大。帧速率是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。 25帧和30帧的区别在于25帧就是一秒有25个图片连续出现,30帧就是一秒有30个图片连…

    2023年1月31日
    4.8K00
  • oa系统厂家排名

    标题:OA系统厂家排名 OA系统,也称为办公自动化系统,是企业中用以提高工作效率、促进信息流畅交流的软件。目前市场上涌现出众多OA系统厂家,它们各有所长,竞争日益激烈。几家领先的厂商通常以产品稳定性、用户评价、市场占有率、技术创新和服务支持五个方面被消费者及行业专家关注。特别是在产品稳定性方面,厂商…

    2024年1月17日
    76400
  • 科研项目预算管理办法

    科研项目预算管理办法的关键在于确立清晰的预算框架、维护资金使用的透明度、采取有效成本控制措施,并持续监督项目进度与预算执行情况。强调以项目目标为导向的财务规划、确保合理分配与使用经费和通过监控机制保障预算执行的合规性。 预算管理中非常关键的一步是设定明确、可操作的预算目标,该目标需与项目的研究目的和…

    2024年1月10日
    21300
  • 自动化容器编排与手动编排的区别

    标题:自动化容器编排与手动编排的区别 摘要:自动化容器编排与手动编排在可伸缩性、一致性、效率及管理复杂性方面存在显著差异。自动化容器编排通过编排工具如Kubernetes实现高度自动化的容器管理,提供在多主机上部署和管理容器的机制,适合规模化的应用部署。手动编排需要人们通过命令行或脚本一步步地执行部…

    2024年1月18日
    21700
  • 什么是项目资源

    项目资源是指完成项目所必需的实际投入的各种资源,通常包括硬件资源和软件资源。硬件包括项目中完成任务的人力、设备、物资、资金等,对这类资源管理的重点是合理计划、合理采购、充分发挥其使用效率和工作效率;软件资源包括项目所需的各种技术、信息等。 项目资源,是指完成项目所必需的实际投入的各种资源。在这里,通…

    2023年1月17日
    1.5K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部