是否有任何替代方法可以在java中同步类或方法而不使用'synchronized'关键字?

时间:2009-11-16 08:04:26

标签: synchronization

在java中没有使用'synchronized'关键字来同步类或方法有什么替代方法吗?

谢谢, Mallikarjun Kokatanur

3 个答案:

答案 0 :(得分:3)

您可能希望查看使用并发包引入的更改到JDK 5.

http://java.sun.com/developer/technicalArticles/J2SE/concurrency/

以下是文章中的一些内容:

  • 信号量:一种经典的并发工具
  • CyclicBarrier:可重置的多路 同步点(对于有用) 并行编程)
  • CountDownLatch:一个实用工具 阻塞直到给定的数量 信号,事件或条件成立
  • Exchanger:允许两个线程 在集合点交换对象 点,并可以在管道中使用 设计

<强>更新 上面的链接已经死了但本教程很好,http://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/

基本上,使用锁和信号量的例子。

答案 1 :(得分:0)

您可以使用“可锁定”资源,例如文件。

您还可以查看具有更复杂锁定的java.util.concurrent.locks。

为什么不想使用synchronized?

答案 2 :(得分:0)

查看Lock包中的java.util.concurrent.locks类,这比同步方法更灵活。