2.2.9同步静态方法和synchronized(class)效果一样
来源:互联网 发布:尔雅网络课app 编辑:程序博客网 时间:2024/05/02 23:42
package cha02.execise25;/** * Created by sunyifeng on 17/9/27. */public class Service { public static void printA() { synchronized (Service.class) { // FIXME: 注意这里 try { System.out.println("进入方法printA,线程名称:" + Thread.currentThread().getName() + ",当前时间" + System.currentTimeMillis()); Thread.sleep(5000); System.out.println("离开方法printA,线程名称:" + Thread.currentThread().getName() + ",当前时间" + System.currentTimeMillis()); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void printB() { synchronized (Service.class) { // FIXME: 注意这里 System.out.println("进入方法printB,线程名称:" + Thread.currentThread().getName() + ",当前时间" + System.currentTimeMillis()); System.out.println("离开方法printB,线程名称:" + Thread.currentThread().getName() + ",当前时间" + System.currentTimeMillis()); } }}
package cha02.execise25;/** * Created by sunyifeng on 17/9/27. */public class ThreadA extends Thread { private Service service; public ThreadA(Service service) { super(); this.service = service; } @Override public void run(){ service.printA(); // }}
package cha02.execise25;/** * Created by sunyifeng on 17/9/27. */public class ThreadB extends Thread { private Service service; public ThreadB(Service service) { super(); this.service = service; } @Override public void run() { service.printB();// }}
package cha02.execise25;/** * Created by sunyifeng on 17/9/27. */public class Run { public static void main(String[] args) { Service service1 = new Service(); Service service2 = new Service(); // ThreadA threadA = new ThreadA(service1); threadA.setName("A"); threadA.start(); // ThreadB threadB = new ThreadB(service2); threadB.setName("B"); threadB.start(); }}
运行结果:进入方法printA,线程名称:A,当前时间1507738817656
离开方法printA,线程名称:A,当前时间1507738822660
进入方法printB,线程名称:B,当前时间1507738822660
离开方法printB,线程名称:B,当前时间1507738822660
阅读全文
0 0
- 2.2.9同步静态方法和synchronized(class)效果一样
- 2.2.9同步静态方法与synchronized(class)
- 2.3静态synchronized同步方法和synchronized(class)代码块
- Synchronized同步静态方法和非静态方法总结
- Synchronized同步静态方法和非静态方法
- 《多线程编程》学习之五:synchronized同步语句块,静态同步synchronized方法与synchronized(类名.class)代码块
- java多线程之-----静态同步synchronized方法与synchronized(class) 代码块
- java synchronized同步静态方法和同步非静态方法的区别与举例
- java synchronized同步静态方法和同步非静态方法的区别与举例
- 同步方法ReentrantLock和Synchronized
- synchronized 静态方法和非静态方法
- java synchronized同步静态方法和同步非静态方法的异同(淘宝面试问过此问题)
- java synchronized:(实例方法同步、静态方法同步)区别
- Synchronized静态方法和SyncRoot
- Synchronized 同步方法和同步代码块
- synchronized 同步方法中静态与非静态的区别
- java synchronized静态同步方法与非静态同步方法,同步语句块
- java synchronized静态同步方法与非静态同步方法,同步语句块
- BZOJ 1858: [Scoi2010]序列操作 线段树
- ArcGIS for Javascript API 4.X 实现分屏对比中的地图联动功能的实现
- 我的第一篇博客
- MS sqlserver 数据库异地备份到其他计算机(xp_cmdshell)
- C语言求2个数中较大数
- 2.2.9同步静态方法和synchronized(class)效果一样
- Java笔记之集合框架Collectio与Map各个子类总结
- JAVA中8八数据类型
- 计算fibnacci数列第n个数的几种方法以及性能比较
- linux下使用C++ Json库
- 如何在centOS6.7上安装jdk、mysql、tomcat,以及部署打包成war包的web项目
- C++中函数指针的使用
- ORM之mybatis与hibernate个人理解
- ERROR C2995 使用类 模板 需要 模板 参数列表