有人可以解释Java中各种同步方法之间的各种差异吗?
所以我真的想知道常用的不同Java同步选项是什么,以及它们如何映射到传统的" /理论互斥锁,信号量,锁和监视器。
干杯!
答案 0 :(得分:3)
我将简要说明每一个:
tryLock
之类的操作,如果它是空闲的,它只会尝试锁定,否则会立即返回。需要明确解锁锁。wait / notify
大致相当于条件变量的概念。同样,它们必须受同步块保护,只有在用作监视器的对象上保持锁定时才会调用它们。答案 1 :(得分:1)
Java本身支持线程和同步。同步线程的本机(或低级)方法是使用synchronized块和方法(== critical section),wait()
和notify()
。
这种技术可以让你做任何你想做的事情但不幸的是,这种方式有时非常冗长。 Doug Lea最初在Apache项目下开发了并发包。然后,这个软件包被Sun Microsystems采用。这个包提供了更方便的API。
有关详细信息,请参阅此文章:http://docs.oracle.com/javase/tutorial/essential/concurrency/