自旋锁和互斥锁是多线程编程中的两个重要概念。他们都能用来锁定一些共享资源,以阻止影响数据一致性的并发访问。但是他们之间确实存在区别,那么这些区别是什么?
1 理论
理论上,当一个线程试图获取一个被锁定的互斥锁时,该操作会失败然后该线程会进入睡眠,这样就能马上让另一个线程运行。当持有互斥锁的线程释放该锁之后,进入睡眠状态的线程就会被唤醒。但是,当一个线程试图获取一个自旋锁而没有成功时,该线...
分类:
其他好文 时间:
2014-04-29 13:31:21
阅读次数:
317
lock and
latch在oracle中为了保护共享资源,使用了两种不同的锁机制lock和latch,这两种锁有明显不同点:1,lock和pin,采用的是队列的方式,先来先服务的策略,latch和mutex,采用的是抢占的方式,fast
fail模式2,lock可以hold的时间比较长,而lat...
分类:
数据库 时间:
2014-04-28 02:21:00
阅读次数:
889