Tag: volatile

易变与联锁与locking

假设一个类有一个public int counter字段,可以被多个线程访问。 这个int只是递增或递减。 为了增加这个领域,应该使用哪种方法,为什么? lock(this.locker) this.counter++; , Interlocked.Increment(ref this.counter); , 将counter的访问修饰符更改为public volatile 。 现在我发现了volatile ,我一直在删除许多lock语句和Interlocked的使用。 但有没有这样做的理由?

Java中volatile和synchronized的区别

我想知道区别声明一个variables为volatile并总是访问Java中的synchronized(this)块(尤其是J2ME)中的variables? 根据这篇文章http://www.javamex.com/tutorials/synchronization_volatile.shtml有很多可以说,有很多的差异,但也有一些相似之处。 我对这条信息特别感兴趣: … 访问一个volatilevariables永远不会有阻塞的可能性:我们只做过一个简单的读或写操作,所以与synchronized块不同,我们永远不会锁住任何锁; 因为访问一个volatilevariables永远不会拥有一个锁,所以它不适合我们想要读取更新 – 写入为primefaces操作的情况(除非我们准备“错过更新”); 他们是什么意思阅读更新写 ? 不写也是一个更新,或者他们只是意味着更新是依赖于读取信息的写入? 最重要的是,何时声明variablesvolatile比通过synchronized访问variables更合适? 对依赖于input的variables使用volatile是一个好主意吗? 例如,有一个variables叫render ,通过渲染循环读取并通过按键事件设置?

你有没有在Java中使用volatile关键字?

在今天的工作中,我遇到了Java中的volatile关键字。 不是很熟悉,我find了这个解释: Java理论与实践:pipe理波动性 鉴于该文章解释关键字的详细信息,您是否曾经使用它,或者您是否曾经看到可以正确使用此关键字的情况?