在Java中,虚拟机保证原语类型(除double和long)的读写都是原子性的。即不需要同步,但是如果不对这样的数据读写进行同步,那么后果将很严重。可以参照Effective Java的解释,这里还要简单的提示意下,Effective Java中有提到double check这种方式,而且我的源代码中多次用到这种方法,单是需要提醒一下,如果用这种方式来实现singleton的话,就不可以了,因为这样有可能导致不完整的对象被使用,单是源码中的double check用的都是原语类型,所以OK。 这边的建议是如果修改原语类型或者非可变类的属性,可以同步或者使用volatile关键字。如果是其他对象,必须同步。关于尽量少使用同步,这边的建议是,我们这样的初学者在不知道如何优化的情况下就不要优化,我们要的是正确的程序,而不是快的程序。
2. wait方法的使用
wait方法是一个很重要的方法,前面有介绍过这个方法,不但可以使一个线程等待,而且可以作为实现suspend的替代方法的一个方法。
Wait方法的标准使用方式如下:
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


