我读到了关于事件的事件,它允许我等待其他线程:AutoResetEvent
和ManualResetEvent
。
这两个班级有什么区别?对于高度并发的程序,哪个类更好?
答案 0 :(得分:2)
区别在于事件发出信号(设置)时会发生什么。
一般来说,我发现使用手动重置事件更容易,因为在大多数情况下,在任何给定时间确定事件的状态会更直接。
也就是说,有些情况下自动重置事件的行为更有利于实现同步,因为您可以保证只有一个等待线程将发出信号。因此,如果您有一个生产者/多个消费者场景,其中任何一个消费者应该发出信号,那么您应该考虑自动重置事件。