首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

synchronized关键字-应用基础

2013-01-28 
synchronized关键字---使用基础使用同步方法通过运行结果对比,可知,当tester对象在线程A中调用test1()时,

synchronized关键字---使用基础

使用同步方法

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


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

?

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

?

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

? ? ? ?

热点排行