标签:#并发控制算法

共 3 篇文章

Szymanski算法

Szymanski算法是解决多个线程并发访问一个共享资源的互斥问题的一个算法。由Boleslaw Szymanski于1988年提出。该算法具有很多优良性能,如线性等待,解决了由Leslie Lamport提出的开问题。 算法的类比解释 该算法可以用等候室(waiting room)做一个直观地类比。等候室有一个入口门与一个出口门。起初,入口门是打开的。所有想要进入临界区的线程在差不多同一时间由入口进入等候室。最后一个进入的线程负责关闭…

Lamport面包店算法

Lamport面包店算法()由莱斯利·兰波特发明,是用于解决多个线程并发访问共享单用户资源时的互斥问题的一种算法。 算法 类比说明 兰波特将该并发控制算法直观地类比为顾客去面包店采购的场景。在此场景中,面包店一次只能接待一位顾客。假设有 N 位顾客要进入面包店采购,他们需要按照先来后到的顺序在前台抽取签到号码,号码依次递增(每次加1)。顾客根据签到号码从小到大的顺序依次结账购买。完成购买后,顾客的签到号码归零;若需再次购买,则必须重新排…

Peterson算法

Peterson算法是一个实现互斥锁的并发程序设计算法,可以控制两个进程访问一个共享的单用户资源而不发生访问冲突。蓋瑞·L·彼得森(Gary L. Peterson)于1981年提出此算法 。 算法概要 Peterson算法是基于双线程互斥访问的LockOne与LockTwo算法而来。LockOne算法使用一个flag布尔列表,LockTwo使用一个turn的整型量,都实现了互斥,但是都存在死锁的可能。Peterson算法把这两种算法结…