简单了解Java synchronized关键字同步

发布于 2021-1-13|

复制链接

摘记:  synchronized

synchronized可以用来同步块,同步方法。同步块可以用来更精确地控制对象锁,控制锁的作用域。(锁的作用域就是从锁的获得到锁的释放的时间,而且可以选择获取哪个对象的锁)。但是在使用同步块机制时 ..

synchronizedsynchronized可以用来同步块,同步方法。同步块可以用来更精确地控制对象锁,控制锁的作用域。(锁的作用域就是从锁的获得到锁的释放的时间,而且可以选择获取哪个对象的锁)。但是在使用同步块机制时,过多的使用锁也会引发死锁问题,同时获取和释放也有代价。而同步方法,它所拥有的就是该类的对象,换句话说,就是this对象,而且锁的作用域是整个方法,这可能导致锁的作用域太大,有可能导致死锁问题。同时也可能包括了不需要同步的代码块在内,也会降低程序的运行效率。不管是同步方法还是同步块,我们都不应该在里面包含无限循环,不然有可能导致获得锁之后,无限循环下去,无法释放获得的锁资源,从而导致等待锁的线程无法获得,出现死锁问题。同步方法

非静态同步方法

所有的非静态同步方法使用的都是同一把锁----实例对象本身,也就是说一个实例对象的非静态方法获得锁之后,此对象的其他非静态方法必须等待该方法释放锁之后才能获取锁,而这个类的其他对象可以被获取,其他对象的非静态方法使用的是不同的锁静态同步方法

所有的静态同步方法使用的都是同一把锁---该类对象本身,这两把锁使用的是不同的对象,所以,类的非静态方法和静态方法之间不存在锁竞争。但是一个类的静态方法之间存在锁竞争,同步块

java的同步关键字_简单了解Java synchronized关键字同步相关推荐

  1. java类成员初始化_简单了解Java类成员初始化顺序

    这篇文章主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类中包含7中成员: 1.静态变量 static 2 ...

  2. java完成九宫格数独_简单实现java数独游戏

    本文实例为大家分享了java数独游戏的具体代码,供大家参考,具体内容如下 打算把javaFx需要的组件装好以后直接用javaFx的,但似乎eclipse的版本不对,安装了也不能用... 数独代码是在之 ...

  3. Java抽号系统_简单实现java抽奖系统

    简单实现java抽奖系统 发布于 2020-3-11| 复制链接 摘记: 本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下用户信息类 ```java /* * 用户信息类 * 1. ...

  4. java catch中抛出异常_简单了解Java编程中抛出异常的方法

    任何Java代码都可以抛出异常,如:自己编写的代码.来自Java开发环境包中代码,或者Java运行时系统.无论是谁,都可以通过Java的throw语句抛出异常.从方法中抛出的任何异常都必须使用thro ...

  5. java xmlrpc2.0 实现_简单的java xmlrpc

     简单的 XMLRPC java---XmlRpcClient package com.company; import org.apache.xmlrpc.XmlRpcClient; import ...

  6. java编译时注解_简单介绍 Java 中的编译时注解

    1. 前言 上一篇 主要介绍了什么是 注解 (Annotation) 以及如何读取 运行时注解 中的数据, 同时用注解实现了简单的 ORM 功能. 这次介绍另一部分: 如何读取 编译时注解 ( Ret ...

  7. java 打印ascii字符串_简单使用JAVA打印纯ASCII字符构成的酷图效果

    简单地编写一个读取"ASCII-兔.txt"文件的java代码,如下所示: import java.io.BufferedReader; import java.io.File; ...

  8. java midi没有声音_简单的Java MIDI示例不产生任何声音

    这个简单的代码在我用来测试的几台机器上没有产生任何声音.我正在Eclipse中运行代码,但我也尝试过使用命令行无济于事. public static void main(String[] args) ...

  9. java 不定长参数_简单介绍Java的不定长度参数

    本文版权归作者所有,仅供用来网上学习来用,读者可以收藏,请不要下载到本机和重新发布到其它网站 先看两个简单的例子,来感受一下Java的不定长度参数 第一个例子: public class VariAr ...

最新文章

  1. 现实版“神笔马良”!“90后”小伙把贫困村画成网红景点,网友:一个人带动整个村GDP...
  2. Linux性能监控和调试
  3. c#后台修改前台DOM的css属性
  4. 9.0 C++远征:对象成员
  5. 前端传数据到后台部分接收成功,部分接收失败
  6. eclipse opengl java_eclipse openGL glut运行环境配置
  7. IIS中WEB服务器的日志存放到SQL Server 2005中
  8. jQuery Ajax 如何设置Timeout
  9. Windows MinGW cmake 安装编译Opencv 3.4.3 C++开发环境
  10. Makefile之静态模式(7)
  11. 33 MM配置-采购-采购订单-定义凭证层的屏幕格式
  12. 【2017今日头条】头条校招(JAVA)
  13. springAOP支持的通知类型
  14. Java基础(一)Java语言概述及入门
  15. DEV C++编写程序出现 [errror]Id returned 1 exit status报错可能出现的原因及解决办法
  16. 图灵奖评委们,明年可以考虑下这两位 AI 先驱
  17. 斯坦福大学新课CS224W-图网络机器学习算法-视频及ppt资源分享
  18. Dubbo面试杀招--Dubbo集群容错负载均衡
  19. 网速正常服务器正常游戏延迟,网速时延多少正常(网络延迟与网速有关吗)
  20. 计算机软件行业特点,计算机行业管理软件的功能特点和系统要求_采购供应_联商论坛...

热门文章

  1. MySQL 中的myisam内部临时表
  2. 《HTML 5与CSS 3 权威指南(第3版·上册)》——3.2 新增的非主体结构元素
  3. Netty4具体解释三:Netty架构设计
  4. 手势识别之平移、缩放、长按、旋转、滑动
  5. linux gnome虚拟文件系统 gvfs和gnome-vfs 简介
  6. centos7 network-manager 与 interfaces 冲突
  7. OWASP 2017 Top10 漏洞体系
  8. 开源杀毒引擎 ClamAV
  9. PHP中添加HTML代码的三种方法(printEND)
  10. windbg设断点命令详解(bp, bu, bm, ba 以及bl, bc, bd, be)