当前位置: 首页 > news >正文

关于Synchronized

        Synchronized用于实现线程间的同步。它可以被用于方法或代码块上,确保同一时间只有一个线程可以访问被 synchronized 修饰的代码,也就是常说的锁,synchronized有三点作用

        1)实现线程安全:通过使用 synchronized,可以确保多个线程在执行共享资源的代码时,不会发生数据冲突或不一致的情况。

        2)保护关键资源:对于一些关键资源,只允许一个线程进行访问,其他线程需要等待锁释放后才能继续执行。

        3)协调线程间的操作:通过使用 synchronized,可以实现多个线程之间的协调和顺序执行。

当synchronized运用在普通方法上,表示会锁定整个方法体,确保同一时间只有一个线程可以执行该方法。与synchronized(this)的锁的对象是一样的。

public synchronized void func3(){;
}

当synchronized修饰代码块时,则只会锁定代码块内的部分代码,而不是整个方法。并且synchronized(this)与synchronized修饰方法的作用相同,同一时间,线程只能访问其中一个。

当synchronized修饰静态方法时,会锁定整个类的 Class 对象,确保同一时间只有一个线程可以执行该静态方法。

public synchronized static void func(){System.out.println("hahaha");
}
public void func1(){synchronized (this){System.out.println("hahaha");}
}
http://www.lryc.cn/news/168029.html

相关文章:

  • 深度学习(Python)学习笔记2
  • gitlab操作
  • docker day04
  • 任意区域的色彩一致性处理方法
  • 听GPT 讲Istio源代码--pilot
  • pdfjs解决ie浏览器预览pdf问题
  • 千里共婵娟 | 结合微信公众号用JavaScript完整开发实现换中秋头像的功能
  • pt26django教程
  • javabasic
  • 电子词典项目
  • SQL12 高级操作符练习(2)
  • python写代码过程中的坑230915
  • SpringBoot课堂笔记20230913
  • 3D数字孪生:从3D数据采集到3D内容分析
  • 【杂记】git管理工具的相关应用
  • 看好多人都在劝退学计算机,可是张雪峰又 推荐过计算机,所以计算机到底是什么样 的?
  • leetcode 26.删除有序数组中的重复项
  • jitsi音视频会议集成到自己的网页中
  • 浅析Java责任链模式实现
  • SpringBoot雪花算法主键ID传到前端后精度丢失问题的解决
  • vue使用elementUI的upload上传文件封装
  • cenos自动启动tomcat
  • OSI模型与数据的封装
  • 【李沐深度学习笔记】数据操作
  • 【蓝桥杯选拔赛真题61】Scratch小猫照镜子 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析
  • vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)
  • 软件测试:黑盒测试用例的四种设计方法
  • 数据库开发-MySQL基础DQL和多表设计
  • PowerDesigner 逆向工程以及IDEA中UML插件
  • 企业架构LNMP学习笔记56