读书人

synchronized关键字-应用基础

发布时间: 2013-01-28 11:49:56 作者: rapoo

synchronized关键字---使用基础

使用同步方法

通过运行结果对比,可知,当tester对象在线程A中调用test1()时,该对象在线程B中调用同是同步方法的test2()时被阻塞。


? ? (3)上述情况对于sychronzied(this)或是synchronized(lock)同步语句中的其他对象锁同样使用,但要保证lock是同一个对象,否则没有同步效果。

?

? ? 另外,synchronized关键字无法继承。

?

? ?分析完各种使用情况,最后说一下自己对线程同步的理解吧。拿前面的test()方法来说,不同线程中的同一个tester是彼此独立的,将一个tester对象看成一栋大楼,test()方法是房间,一个线程中使用tester.test()方法就好比该线程在tester大楼中开了一个新的test()房间,多个线程在并发的开房间,谁先开,使用的进度如何彼此之间并没有约束和影响。但是如果把tester对象锁定了,就像把这个大楼上了锁,一次只能允许一个线程进入(针对要使用上了锁的方法或代码块的线程而言),那么这个大楼里的所有房间(所有同步方法和同步代码块)就只有一个线程可以使用,这样,各线程对该tester对象的使用就是互斥的了,亦即有了同步的效果。

? ? ? ?

读书人网 >其他相关

热点推荐