什么情况下我们要考虑线程安全?
多方总结应该是一句话:当两个线程同时访问一个对象的时候,就需要考虑该对象是否是线程安全!(呵呵,参考了一位同事的话)...觉得比较精辟的清晰的.比如我们觉见的servlet,操作数据库等等...
提高效率需要注意一点的就是分解:
举个例子大家容易更加明白什么叫分解,分解了为什么能提高效率:
public synchonized void work(){
print();
readMail();
openMeet();
}
该方法里面调用的print()和openMeet()两个方法如果是同步方法,且readMail()需要消耗很多时间时,我们不妨把上面的方法改成如下这样,将会大大提高效率:
public synchonized void work(){
synchonized(this) {
print();
}
readMail();
synchonized(this) {
openMeet();
}
}
这样,我们在调用成功一个同步方法后就会解锁给其它线程调用,继续调用费时很长的方法,这样将大大提高性能效率问题了..
这算是看了一点资料的一点总结吧....希望能对新手有所帮助!高手就不用了,嘿嘿..