【发布时间】:2012-07-31 00:25:20
【问题描述】:
互斥锁背后的想法是在任何时候只允许一个线程访问一段内存。如果一个线程锁定了互斥体,任何其他锁定尝试都将阻塞,直到第一个解锁。然而,这是如何实现的呢?要锁定自己,互斥锁必须在某个地方设置一个表示它已锁定的位置。但是,如果第二个互斥锁同时读取第一个互斥锁,该怎么办。更糟糕的是,如果他们同时锁定互斥锁怎么办?互斥体将屈服于它旨在防止的相同问题。
互斥锁是如何工作的?
【问题讨论】:
标签: c++ multithreading concurrency mutex