Java SE 102 synchronized关键字常见陷阱深度剖析.docxVIP

  • 5
  • 0
  • 约 12页
  • 2017-01-03 发布于贵州
  • 举报

 Java SE 102 synchronized关键字常见陷阱深度剖析.docx

Java SE 102 synchronized关键字常见陷阱深度剖析当同步方法加上static关键字之后,不是锁在当前对象了,如果要锁当前对象,结果应该与不加static是一样的。静态方法不属于任何一个对象,它是属于类本身的。因此可以通过类的名字去调用它。而不是通过对象,一般的实例方法都要通过对象来去调用它。因此当一个方法是static的,并且这个方法被synchronized关键字所修饰的话,当一个线程去访问这个静态的synchronized这个方法,它锁的就不是当前的对象,而是当前这个对象所对应的那个Class对象。如果一个类有10个对象,这10个对象所对应的Class对象有几个,只有一个,也就是说不管这个类生成多少个对象,它们所对应的Class对象只有唯一的一个。类里面定义了两个synchronized的static方法,如果线程执行的时候,肯定是一个先一个后,不会同时,因为它们所对应的Class对象,只有一个。package com.javase.thread;publicclass ThreadTest4 {publicstaticvoid main(String[] args) {Example example = new Example();Thread t1 = new TheThread(example);Thread t2 = new TheThread2(e

文档评论(0)

1亿VIP精品文档

相关文档