ArtOfMP--锁的公平性

2018-08-07

锁的公平性

  • 产生

    跟锁的无饿死性质有关

    虽然锁的无饿死性质保证每个调用lock()的线程最终都会进入关键区,但是并没有保证线程花费多久才会进入关键区。

  • 解决

    将lock方法分成两个部分:

    (1)doorway区:在doorway区的执行花费有限步;

    (2)waiting区:在waiting区的执行花费无限步;

  • 定义

    先到先服务锁(锁的公平性)

使用happens-before偏序关系来定义很多概念

  • 互斥

  • 先到先服务锁

    如果线程A总是在线程B进入其doorway区前退出其doorway区,则线程A不可能被B赶超:

你可能感兴趣的:(ArtOfMP--锁的公平性)