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

magento建站是傻瓜式的吗培训如何优化网站

magento建站是傻瓜式的吗,培训如何优化网站,wordpress上传视频人50,自己做的网站买域名多少钱文章目录synchronized锁重入验证1. 可重入锁2. synchronized锁重入2.1 本类同步方法内部调用本类其它同步方法2.2 子类同步方法内部调用父类的同步方法2.3 A类的同步方法内部调用B类的同步方法3. synchronized修饰方法写法synchronized锁重入验证 1. 可重入锁 可重入锁&#…

文章目录

  • synchronized锁重入验证
  • 1. 可重入锁
  • 2. synchronized锁重入
    • 2.1 本类同步方法内部调用本类其它同步方法
    • 2.2 子类同步方法内部调用父类的同步方法
    • 2.3 A类的同步方法内部调用B类的同步方法
  • 3. synchronized修饰方法写法

synchronized锁重入验证

1. 可重入锁

可重入锁:也叫递归锁,指的是同一线程的外层函数获得锁之后,内层递归函数仍然能获取该锁的代码。

即同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。线程可以进入任何一个它已经拥有的锁所同步着的代码块。

2. synchronized锁重入

synchronized是支持锁重入的,是可重入锁。

  • 同一线程在本类同步方法内部可以调用本类其它同步方法
  • 同一线程子类同步方法内部可以调用父类的同步方法
  • 同一线程在A类的同步方法内部可以调用B类的同步方法

2.1 本类同步方法内部调用本类其它同步方法

同一线程在本类同步方法内部可以调用本类其它同步方法

SyncObjMthod类:

public class SyncObjMthod {synchronized public void method1(){System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 method1...");method2();}synchronized public void method2(){System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 method2...");method3();}synchronized public void method3(){System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 method3...");}
}

TestSyncRenntry测试类:

public class TestSyncRenntry {public static void main(String[] args) {new Thread(() -> {SyncObjMthod syncObjMthod = new SyncObjMthod();syncObjMthod.method1();}, "AAA").start();;}
}

输出结果:

线程 AAA	调用 method1...
线程 AAA	调用 method2...
线程 AAA	调用 method3...

2.2 子类同步方法内部调用父类的同步方法

同一线程子类同步方法内部可以调用父类的同步方法

父类Father:

public class Father {public int i =10;public synchronized void fatherMethod(){try {i--;System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 fatherMethod i="+i);TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}}
}

子类Sub:

public class Sub extends Father {public synchronized void subMethod() {try {while (i > 0) {i--;System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 subMethod i=" + i);TimeUnit.SECONDS.sleep(5);this.fatherMethod();}} catch (InterruptedException e) {e.printStackTrace();}}
}

测试类TestSyncRenntry1:

public class TestSyncRenntry1 {public static void main(String[] args) {new Thread(()->{Sub sub = new Sub();sub.subMethod();},"BBB").start();}
}

输出结果:

线程 BBB	调用 subMethod i=9
线程 BBB	调用 fatherMethod i=8
线程 BBB	调用 subMethod i=7
线程 BBB	调用 fatherMethod i=6
线程 BBB	调用 subMethod i=5
线程 BBB	调用 fatherMethod i=4
线程 BBB	调用 subMethod i=3
线程 BBB	调用 fatherMethod i=2
线程 BBB	调用 subMethod i=1
线程 BBB	调用 fatherMethod i=0

2.3 A类的同步方法内部调用B类的同步方法

同一线程在A类的同步方法内部可以调用B类的同步方法

public class A {B b = new B();public synchronized void method(){System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 A类 method方法");b.method();}
}
public class B {public synchronized void method(){System.out.println("线程 "+Thread.currentThread().getName()+"\t调用 B类 method方法");}
}
public class TestDemo1 {public static void main(String[] args) {new Thread(()->{A a = new A();a.method();},"CCC").start();}
}
线程 CCC	调用 A类 method方法
线程 CCC	调用 B类 method方法

3. synchronized修饰方法写法

synchronized修饰方法的写法:

  1. 第一种
synchronized public void method1(){}
  1. 第二种
public synchronized void method1(){}
http://www.hkea.cn/news/109247/

相关文章:

  • 竞价排名广告东莞关键词排名快速优化
  • 做视频网站要什么格式好网络营销公司怎么注册
  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法
  • php mysql的网站开发外贸推广平台
  • 济南网站建设认可搜点网络能百度指数有三个功能模块