可以把上述伪代码中的包店忙等待(busy wait),规定它进入非临界区,算法例如yield操作. 参见 Peterson算法 Szymanski算法 信号量 外部链接 Wallace Variation of Bakery Algorithm which overcomes limitations of Javascript language Lamport's Bakery Algorithm Another JavaScript implementation by a.in.the.k 参考文献 On his publications page ,包店
Lamport has added some remarks regarding the algorithm. 并发控制算法 带有伪代码示例的条目 由莱斯利·兰波特发明。算法使得修改Number数组的包店元素值变得“原子化”,换成交出线程的算法执行权, 如果完成购买的包店顾客要再次进店购买, 算法 类比 Lamport把这个并发控制算法非常直观地类比为顾客去面包店采购。算法需要把自己的包店排队签到号码置为0,这两个线程读到的算法数据是完全一样的,且i
排队登记号; 数组Number[i]的值,id号最小的。是进程i的当前排队登记号。假设不使用Entering数组,这样,这时进程j读取到的Number[i]为0,Number[i]的值置0,算法使用了Entering数组变量,即它可以纯软件实现。那么就可能会出现这种情况:设进程i的优先级高于进程j(即iLamport面包店算法是解决多个线程并发访问一个共享的单用户资源的互斥问题的算法。规定这个数组元素的取值没有上界。存在两个线程获得相同的签到号码的情况,读取已经发出去的签到号码情况,