多线程共享/访问相同数据的问题

时间:2012-02-29 12:52:25

标签: java multithreading concurrency

我一直在研究Java中多个线程访问或共享数据的时间。并研究如下问题:

  • 线程干扰
  • 内存一致性
  • 死锁
  • 饥饿

由此,解决这些问题的解决方案。

到目前为止,我似乎发现修复这些问题的方法是使用同步方法。 还有其他替代方法可以使用同步方法吗? 我从sun Java教程中找到了大部分这些信息。 有关进一步阅读的任何建议吗?

1 个答案:

答案 0 :(得分:3)

尽可能保持数据只读(不可变)或复制它们以使其成为线程本地作为一般建议。

在Java中,有几个特殊的非阻塞实现计数器(AtomicIntegerAtomicLong等)和集合(java.util.concurrent.*),如果您需要避免同步数据

我可以推荐“Effective Java”(Joshua Bloch)或“Java并发实践”一书。