我再次看了侯捷译的Thinking in Java第二版中文版,得到有关synchronized的如下信息:
1、synchronized关键字的作用域有二种:
1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法;
2)是某个类的范围,synchronized static aStaticMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。
2、除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象;
3、synchronized关键字是不能继承的,也就是说,基类的方法synchronized f(){} 在继承类中并不自动是synchronized f(){},而是变成了f(){}。继承类需要你显式的指定它的某个方法为synchronized方法;
分享到:
相关推荐
这个名为“每个JAVA初学者都应该搞懂的问题”的压缩包文件,显然是为那些刚开始学习Java的人准备的一份详细教程。让我们来探讨一下其中可能包含的知识点。 首先,我们看到一个名为“每个JAVA初学者都应该搞懂的问题...
Java编程语言是全球范围内广泛应用的开发语言,尤其适合初学者入门。它以其“一次编写,到处运行”的特性闻名,这得益于..."每个学Java的人都应该搞懂"这个文档很可能详细阐述了这些基础知识,是初学者宝贵的参考资料。
自旋锁是Java并发编程中的一种重要机制,用于解决多线程环境下的同步问题。它在高并发场景下能够提高程序的运行效率,避免线程频繁地在内核态和用户态之间切换。本文将深入讲解Java中的自旋锁及其工作原理。 自旋锁...
Java初学者在学习过程中经常会遇到一些关键概念的理解难题,这里我们将深入探讨六个核心问题,以帮助初学者更好地理解和掌握Java编程。 首先,我们要明白的是**Java中的对象引用**。在Java中,当我们声明一个对象,...
线程间通信、同步和互斥是多线程编程中需要关注的关键点,例如synchronized关键字用于实现线程安全。 掌握这些基础概念对Java初学者至关重要,它们构成了Java编程的基础,有助于理解和解决实际开发中遇到的问题。在...
如果觉得有用的话,给个明星鼓励一下吧~图标链接制作来源于https://shields.io/在线脑图制作https://www.processon.com/ 目录(善用Ctrl+F)常用的设计模式教你使用策略模式解决端口if-else文章搞懂代理模式教...
在Java中,synchronized跟ReetrantLock都是可重入锁。 不可重入锁是指线程获取了锁以后,需要先调用unlock释放锁,然后才能执行下一步操作。自旋锁是一种不可重入锁的实现方式。 三、悲观锁和乐观锁 悲观锁是指有...
不一定正确(标记 TODO 为还没来得及弄或自己也没搞懂 Orz...),欢迎指正(可以提 Issues,亦可邮件交流 )。侧重点是个人对某些问题的总结,并基于此形成个人专业的 Knowledge Base (提供配套思维导图,但已很久...