Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用.
http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html
链接上有代码实例
相关推荐
理解线程生命周期(新建、就绪、运行、阻塞、死亡),同步机制(synchronized关键字、wait()、notify()、notifyAll()以及Lock接口)以及死锁、活锁和饥饿的概念,都是面试中常见的问题。 其次,类的初始化顺序是另...
理解线程同步(如synchronized关键字和Lock接口)以及并发工具类(如ExecutorService和Future)是处理并发问题的关键。 6. **输入/输出(I/O)**:Java的I/O流系统包括字符流和字节流,以及用于文件操作、网络通信...
3. 多线程:介绍线程的创建和管理,线程同步机制,如synchronized关键字,wait和notify方法,以及线程池的使用。 4. 反射:讨论Java反射机制,它允许程序在运行时访问和修改类的行为,是框架开发中的重要技术。 5....
这份资料可能是从www.pigkrtv.com等网站转载而来,旨在帮助学习者深化对Java编程语言的理解,提高编程技能。 在Java编程学习过程中,掌握基本概念、语法以及解决问题的能力至关重要。这份习题集涵盖了以下几个关键...
对于【JAVA面试常被问到的题目[转载+解答] - Moon Face - 博客园.png】这个文件,通常它可能包含了一篇博客文章的截图,其中详细解答了一些Java面试题。如果能够查看这个文件,你将得到更具体的答案和解析,帮助你在...
通过阅读《Java常见面试题.doc》、《Java面试题1.htm》、《5559.htm》、《Java面试题2.htm》、《java面试笔试题大汇总 及c-c++面试试题(转载 ) - happyfish - BlogJava.mht》以及《Java常见面试题.txt》等文件,您...
所以很少存在简单重复的工作,加上Java 代码的精炼性和面向对象纯洁性(设计模式是 java 的灵魂),编程工作将变成一个让你时刻 体验创造快感的激动人心的过程. 为能和大家能共同探讨"设计模式",我将自己在学习中的心得...