如何在Java中使用synchronized关键字
短信预约 -IT技能 免费直播动态提醒
如何在Java中使用synchronized关键字?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
java基本数据类型有哪些
Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。3、字符类型,字符类型的关键字是“char”。4、布尔类型,是表示逻辑值的基本数据类型。
一、使用在非静态方法上
public synchronized void syzDemo(){ System.out.println(System.currentTimeMillis()); System.out.println("进入synchronized锁:syzDemo"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }}
二、使用在静态方法上
public synchronized static void syzDemo1(){ System.out.println(System.currentTimeMillis()); System.out.println("进入synchronized锁:syzDemo1"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }}
三、使用在代码块上
public synchronized void syzDemo2(){ synchronized (this){ System.out.println(System.currentTimeMillis()); System.out.println("进入synchronized锁:syzDemo2"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}public synchronized void syzDemo3(){ synchronized (ExcelUtil.class){ System.out.println(System.currentTimeMillis()); System.out.println("进入synchronized锁:syzDemo3"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}
四、三种方式的区别
public static void main(String[] args) { SyzDemo syzDemo = new SyzDemo(); SyzDemo syzDemo1 = new SyzDemo(); Thread thread = new Thread(()->{ syzDemo.syzDemo(); }); thread.start(); Thread thread1 = new Thread(()->{ syzDemo1.syzDemo(); }); thread1.start(); }
4.1 不会互斥
public static void main(String[] args) { SyzDemo syzDemo = new SyzDemo(); SyzDemo syzDemo1 = new SyzDemo(); Thread thread = new Thread(()->{ syzDemo.syzDemo(); }); thread.start(); Thread thread1 = new Thread(()->{ syzDemo.syzDemo(); }); thread1.start(); }
4.2 互斥
public static void main(String[] args) { SyzDemo syzDemo = new SyzDemo(); SyzDemo syzDemo1 = new SyzDemo(); Thread thread = new Thread(()->{ syzDemo.syzDemo1(); }); thread.start(); Thread thread1 = new Thread(()->{ syzDemo1.syzDemo1(); }); thread1.start(); }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341