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

佛山建站 网站 商城微信推广费用一般多少

佛山建站 网站 商城,微信推广费用一般多少,苏州网站建设工作室,徽石网站建设文章目录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/952637/

相关文章:

  • 用自己的手机做网站外链网站是什么
  • 市场调研公司介绍网站推广优化公司
  • 玉溪人民政府网站建设现状新网站seo
  • 湖南餐饮网站建设2023北京封控了
  • 重庆网站设计人员外贸网站搭建推广
  • 局域网内的网站建设西安网站建设公司排名
  • 普通网站报价多少中南建设集团有限公司
  • 蚌埠做网站哪家好全网营销国际系统
  • 沈阳市网站制作谷歌香港google搜索引擎入口
  • 做美食网站的背景高端网站建设制作
  • 文件什么上传到wordpress泉州seo技术
  • 网站地址地图怎么做网页制作的软件有哪些
  • 如何用万网建设网站口碑营销策划方案
  • 做网站的基础架构东莞seo建站公司
  • 嘉兴做网站的哪家好龙岗网站制作
  • 论坛做网站好吗百度官方网页
  • 微信开发者工具获取系统日期seo优化一般包括
  • 怎么用文本做网站百度排行榜风云榜
  • 未来网站开发需求多搜索网站有哪几个
  • 网站建设 成都郑州高端网站制作
  • 快站怎么做淘客网站深圳关键词
  • 做网站时如何去掉网站横条小红书软文案例
  • 图虫南宁百度快速排名优化
  • 上城网站建设app推广文案
  • 网站建设特点宁波seo搜索引擎优化公司
  • 地产商网站建设网球新闻最新消息
  • 做爰全过程网站免费的视频谷歌seo搜索引擎
  • 怎么架设网站seo推广培训
  • 自己网站做问卷调查网页设计学生作业模板
  • 清远企业网站排名深圳网站建设系统