java语言多线程加锁的各种情况
Posted On 2013年11月30日
非特殊情况下,多线程下的临界资源都必须加锁。 如下列出了一些多线程情况下的需要如何加锁。
1。 只是读操作,没写操作,不用加锁;
2。 如果有写操作,但是变量的写操作跟当前的值无关联,且与其他的变量也无关联,可以使用“开销较低的读-写锁”。 即对变量加上volatile关键字,写操作方法通过synchronized加锁;(如果是android开发, 关于volatile 在android 的dalvik vm的实现应该是没有问题的,可以问下相关android专家 )
3。 如果有写操作,写操作依赖变量的当前值(如:i++),则读和写操作方法都要通过synchronized加锁。
此篇文章已被阅读2665 次