java语言多线程加锁的各种情况

Life is short , play more!
本文来自lihao's Blog,转载请注明。

非特殊情况下,多线程下的临界资源都必须加锁。 如下列出了一些多线程情况下的需要如何加锁。

1。 只是读操作,没写操作,不用加锁;

2。 如果有写操作,但是变量的写操作跟当前的值无关联,且与其他的变量也无关联,可以使用“开销较低的读-写锁”。 即对变量加上volatile关键字,写操作方法通过synchronized加锁;(如果是android开发, 关于volatile 在android 的dalvik vm的实现应该是没有问题的,可以问下相关android专家 )

3。 如果有写操作,写操作依赖变量的当前值(如:i++),则读和写操作方法都要通过synchronized加锁。


发表评论

电子邮件地址不会被公开。 必填项已用*标注