如何在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(); }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。