同步心得
做多线程有段时间了,回首看自己原来的代码,很是sb,故在此做出点sb的总结
首先讨论下synchronized,也就是java的内部锁,这也是最常用的同步,首先小小的说一下,所有的锁都是在锁对象,只不过是对象不同的范围,条件。
个人理解,如有雷同,纯属倒霉。
?
1.那么最下下的使用方法,就是synchronized(this), ok,您老把真个对象都锁了,别人想用这个对象的什么都不成了--“good job”
?
2.还有一种方法锁的使用方法,当一个线程获得这个锁,其他线程就不能进入这个对象的任何锁方法,但是可以使用非同步方法。这个方法容易出错,因为一般要锁的东西应该是资源啊,您老这么锁是在锁一个业务逻辑啊
?
3.当然用的最多的就是锁资源对象,这也是范围较小,条件较灵活的同步方法
?
所以推荐使用第三种同步方法,但是要确定锁的资源,以及线程间的影响,不要非要用它而用
?
?
刚刚只说了说这一种锁,接下来讨论一下条件锁。。。。。