多线程中Event和Mutex之间的区别

时间:2016-01-24 11:59:40

标签: multithreading

我只是很难在Mutex和Event之间找到区别,有人可以向我指出差异并显示何时使用它们吗?

1 个答案:

答案 0 :(得分:0)

我想你在这里尝试将苹果和橘子联系起来。

互斥锁是用于强制互斥的对象(因此名称为“mut”:“mutual”,“ex”:“exclusion”)。换句话说,防止两个或多个线程同时访问同一资源或一组资源。

在Java中,任何对象都可以用作互斥锁。通常,互斥锁是不可变对象,通常定义如下:final Object mutex = new Object();

在Java 5+中引入了java.util.concurrent包,提供了更高级的互斥体形式和其他互斥机制。

事件不是Java中真正定义的概念。编程中的事件有许多不同的类型和范例。 Swing API定义了一个事件范例。 Google的Event Bus和my similar implementation定义了另一种范例。这些范例使事件具有不同的含义和用途。

如果你能在解释“事件”时解释你的意思,那将有助于进一步回答这个问题。谢谢!