互斥锁 编辑
互斥锁是一种用于多线程编程中,防止两条线程同时对同一公共资源进行读写的机制。该目的通过将代码切片成一个一个的临界区域达成。临界区域指的是一块对公共资源进行存取的代码,并非一种机制或是算法。一个程序、进程、线程可以拥有多个临界区域,但是并不一定会应用互斥锁。
1
相关
自旋锁是计算机科学用于多线程同步的一种互斥锁,线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。一旦获取了自旋锁,线程会一直保持该锁,直至显式释放自旋锁。
在计算机科学中,饥饿是指在并发计算中,进程一直无法获得运行所需的必要资源而发生的问题。排程、互斥锁算法、资源泄露等都可能导致饥饿,或者在被拒绝服务攻击时主动产生饥饿。
在计算机科学中,饥饿是指在并发计算中,进程一直无法获得运行所需的必要资源而发生的问题。排程、互斥锁算法、资源泄露等都可能导致饥饿,或者在被拒绝服务攻击时主动产生饥饿。
自旋锁是计算机科学用于多线程同步的一种互斥锁,线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。一旦获取了自旋锁,线程会一直保持该锁,直至显式释放自旋锁。
计算机科学中,可重入互斥锁是互斥锁的一种,同一线程对其多次加锁不会产生死锁。可重入互斥锁也称递归互斥锁或递归锁。
Szymanski算法是解决多个线程并发访问一个共享资源的互斥锁问题的一个算法。由Boleslaw Szymanski于1988年提出。该算法具有很多优良性能,如线性等待,解决了由Leslie Lamport提出的开问题。
Peterson算法是一个实现互斥锁的并发程序设计算法,可以控制两个进程访问一个共享的单用户资源而不发生访问冲突。Gary L. Peterson于1981年提出此算法 。
Lamport面包店算法是解决多个线程并发访问一个共享的单用户资源的互斥锁问题的算法。 由莱斯利·兰波特发明。