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

网站排名优化外包价钱两台电脑一台做服务器 网站

网站排名优化外包价钱,两台电脑一台做服务器 网站,php 网站后台,wordpress安装到网站简述 synchronized是什么? synchronized 关键字是一种同步锁#xff0c;它可以保证在一个时刻只有一个线程可以执行某段代码。synchronized 关键字可以用在方法、代码块、静态方法和静态代码块上。 synchronized怎么用#xff1f; synchronized是Java中用于实现线程同步…简述 synchronized是什么? synchronized 关键字是一种同步锁它可以保证在一个时刻只有一个线程可以执行某段代码。synchronized 关键字可以用在方法、代码块、静态方法和静态代码块上。 synchronized怎么用 synchronized是Java中用于实现线程同步的关键字它可以修饰方法或代码块。 修饰方法当一个方法被synchronized修饰时表示该方法是一个同步方法。同一时间只能有一个线程执行该方法其他线程需要等待。 public synchronized void method() {// 这里是同步代码块 }修饰代码块当一个代码块被synchronized修饰时表示该代码块是一个同步代码块。同一时间只能有一个线程进入该代码块其他线程需要等待。 public class Example {public static void main(String[] args) {final int[] number {1, 2, 3, 4, 5};for (int i 0; i 5; i) {new Thread(() - {synchronized (number) {// 这里是同步代码块System.out.println(number[i]);}}).start();}} }锁的是什么 普通同步方法锁的是当前实力对象。 静态同步方法锁的是当前类的Class对象。 同步方法快锁的是synchonized括号里配置的对象。 注意事项 当使用synchronized修饰代码块时应该尽量控制同步代码块的范围避免锁的竞争过于频繁以提高程序的性能。同时锁对象的选择也很重要应该选择合适的锁对象以避免不必要的线程等待和资源竞争。 原理 synchronized修饰代码块和方法的底层原理类似都是通过对象头中的锁标记位来实现的。 修饰方法 进入方法当线程调用一个被synchronized修饰的方法时会尝试获取该方法所属对象的锁。 获取锁如果对象的锁标记位为unlocked状态则当前线程可以获取到锁并将锁标记位设置为locked状态表示该对象被当前线程锁定。 执行方法体线程获取到锁后会执行synchronized修饰的方法体中的代码。 释放锁当方法执行完毕或抛出异常时会自动释放对象的锁将锁标记位重新设置为unlocked状态。 注意点 需要注意的是synchronized修饰方法时默认锁定的是当前对象实例this即当前方法所属的对象。如果是静态方法锁定的是当前类的Class对象。 //1.静态方法 public static synchronized void method() {// 该方法被当前类的Class对象锁定// ... } //2.普通方法 public synchronized void method() {// 该方法被当前实例对象锁定// ... }修饰代码块 进入代码块当线程进入一个被synchronized修饰的代码块时会尝试获取对象的锁。 获取锁如果对象的锁标记位为unlocked状态则当前线程可以获取到锁并将锁标记位设置为locked状态表示该对象被当前线程锁定。 阻塞或执行如果对象的锁标记位为locked状态表示该对象已被其他线程锁定。当前线程会被阻塞直到锁标记位变为unlocked状态时才能继续执行。 释放锁当线程执行完synchronized代码块后会释放对象的锁将锁标记位重新设置为unlocked状态使其他线程能够获取到锁并执行。 public void method() {synchronized (lock) {// 该代码块被lock对象锁定// ...} }锁的高级特征 JVM在实现锁的过程中采用了多种锁的机制包括偏向锁、轻量级锁和重量级锁并且会根据锁竞争的情况自动进行锁升级和降级。下面是对这些锁的机制和锁升级的简要说明 偏向锁Bias Locking 简介 偏向锁是一种乐观锁策略适用于大部分情况下只有一个线程对锁进行竞争的场景。 偏向锁的目标是减少无竞争的情况下对锁的开销提高程序的性能。 当一个线程获取到偏向锁后JVM会将线程的标识记录在对象头中之后该线程再次获取锁时无需进行同步操作从而提高了程序的执行效率。 实现原理 轻量级锁Lightweight Locking 简介 当多个线程对同一个锁进行竞争时JVM会将锁升级为轻量级锁。 轻量级锁使用CASCompare and Swap操作来实现对锁的获取和释放避免了线程阻塞和唤醒的开销。 如果竞争激烈多个线程同时尝试获取锁那么轻量级锁会膨胀为重量级锁。 实现原理 重量级锁Heavyweight Locking 简介 当轻量级锁膨胀失败或竞争过于激烈时JVM会将锁升级为重量级锁。 重量级锁使用操作系统的互斥量来实现对锁的获取和释放需要涉及线程的阻塞和唤醒。 线程在获取重量级锁时会进入阻塞状态当锁被释放时JVM会从阻塞的线程中选择一个进行唤醒。 锁的升级和降级是根据锁竞争的情况动态进行的以提高程序的性能和吞吐量。当JVM检测到锁竞争较少时会尝试将重量级锁降级为轻量级锁以提高并发性能。反之如果锁竞争激烈JVM会将轻量级锁膨胀为重量级锁以避免不必要的自旋和消耗。 实现原理 需要注意的是锁的升级和降级过程对于开发者来说是透明的无需手动干预。JVM会根据实际情况自动进行锁的升级和降级操作以达到更好的性能和可伸缩性。 这些锁的机制和锁升级是JVM内部的实现细节对于开发者来说只需要了解它们的存在和基本原理以正确地使用synchronized关键字来实现线程安全的同步。 优秀文章传送门 https://zhuanlan.zhihu.com/p/571793506
http://www.zqtcl.cn/news/439002/

相关文章:

  • 大理住房和城乡建设部网站为食堂写个网站建设
  • 做网站要icp备案吗软件定制开发 报价
  • 外国网站上做雅思考试dw做网站的导航栏
  • 公司网站建设的作用网站建设网上商城心得体会
  • 珠海网站建设的公司网站生成app
  • 营销网站建设的价格私人网站建设成本
  • 企业网站制作模板免费下载淘宝指数查询官网手机版
  • 做服装外单的网站购物网站首页图片
  • 网站建设到运营赚钱上海网络哪家比较好
  • 做网站要求高吗超炫网站
  • 贵卅省住房和城乡建设厅网站怎么快速仿wordpress站
  • 苏州网站建设排名clef wordpress
  • 罗定建设局网站汽车装饰网站源码
  • 网站用什么切版商城网站怎么建
  • 设计网站公司多少钱wordpress获取所有标签
  • 怎么看一个网站是哪个公司做的电子商务网站设计与规划
  • 邯郸哪里做网站优化网站建设如何排版
  • 济南网站建设设计制作公司找人做网站价格
  • 阿里网站年费续费怎么做分录大型的网站开发
  • 中山做网站费用广西壮族自治区住房和建设厅网站
  • vs2015做网站如何添加控件建设网站计划 ppt
  • 简述网站设计流程贵阳小程序开发软件公司
  • 营销网站建设的原则设计网站页面要注意什么
  • 上海怎么做网站国外网站 设计
  • 开发公司土地评估费计入土地价款优化搜狐的培训
  • 网站建设佰首选金手指三360怎么免费建网站
  • 网站万能密码修复苏州市建设中心网站
  • 如何搭建php网站网站制作的前期主要是做好什么工作
  • 站酷设计网站官网站不能正常显示出现后台代码
  • 网站域名改版微信公众号免费开通