2.2.9同步静态方法和synchronized(class)效果一样
2017-10-12 00:19
645 查看
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
相关文章推荐
- 2.2.9同步静态方法与synchronized(class)
- java 多线程10:synchronized锁机制 之 锁定类静态方法 和锁定类.Class 和 数据String的常量池特性 同步静态方法
- 静态同步synchronized方法和synchronized(class)代码块
- 深入理解Java中的同步静态方法和synchronized(class)代码块的类锁
- 《多线程编程》学习之五:synchronized同步语句块,静态同步synchronized方法与synchronized(类名.class)代码块
- java多线程之-----静态同步synchronized方法与synchronized(class) 代码块
- java synchronized静态同步方法与非静态同步方法,同步语句块
- 2.3静态synchronized同步方法和synchronized(class)代码块
- synchronized 同步方法中静态与非静态的区别
- 多线程编程 使用 synchronized来同步静态方法 非静态方法 代码块
- synchronized静态同步方法与非静态同步方法,同步语句块
- java synchronized静态同步方法与非静态同步方法,同步语句块
- java synchronized同步静态方法和同步非静态方法的异同
- 2.2.9同一个类的不同静态方法不同实例不同线程是同步的
- java 多线程10:synchronized锁机制 之 锁定类静态方法 和锁定类.Class 和 数据String的常量池特性
- java synchronized静态同步方法与非静态同步方法,同步语句块
- java synchronized静态同步方法与非静态同步方法,同步语句块
- 新手向-同步关键字synchronized对this、class、object、方法的区别
- java synchronized静态同步方法与非静态同步方法,同步语句块
- 静态同步方法-同步锁为:类名.class