latch简单理解(一)
来源:互联网 发布:木疙瘩软件好用吗 编辑:程序博客网 时间:2024/06/09 17:34
latch简单理解
1.1、Latch可以理解为一种清量级的锁, Latch是一种快速的被获取和释放的内存锁,用于防止共享内存结构被多个用户同时访问。他不会造成阻塞,只会造成等待。阻塞时系统设计问题,等待是资源征用问题。最常见的latch争用而等待的----共享池中latch争用,数据缓冲池latch的争用。
1.2、对于Latch的请求,不用排队等待资源,由于Latch的分配相当随机,所以当Latch释放后,不管哪个会话请求都可能得到它,当不能获得Latch的会话,就会在后续不断的重试(spin->sleep->spin…->get latch)
在一台多CPU 的机器上,如果Latch不能立即获得,那么会话就会自旋,即在循环中反复地尝试来或得Latch。如果不这样的话,那么就会导致上下文切换(context switching),这样对资源开销更大。
1.3、Latch请求的类型:willing-to-wait和immediate。
1.3.1 对于willing-to-wait类型的latch:
如果一个进程在第一次尝试中没有获得latch,那么它会等待并且再尝试一次,如果经过_spin_count次争夺不能获得latch, 然后该进程转入睡眠状态,睡眠醒来后,按顺序重复以前的步骤。睡眠的时间会越来越长。
1.3.2 对于immediate类型的latch:
如果该闩不能立即得到的话,那么该进程就不会为获得该latch而等待。它将继续执行另一个操作。
1.3.3 可以通过v$latch视图查看latch的具体信息,在v$latch中:
(以下字段反映了Willing-to-wait类型请求)
GETS:成功地以Willing-to-wait请求类型请求一个latch的次数。
MISSES:初始以Willing-to-wait请求类型请求一个latch不成功的次数。
SLEEPS:初始以Willing-to-wait请求类型请求一个latch不成功后,进程等待获取latch的次数。
(以下字段反映了Immediate类型请求)
IMMEDIATE_GETS:以Immediate请求类型成功地获得一个latch的次数。 IMMEDIATE_MISSES:以Immediate请求类型请求一个latch不成功的次数。- latch简单理解(一)
- 【Latch】的理解
- oracle latch (一)
- 关于latch的一点点理解
- 深入理解Oracle中的latch
- Latch和等待(一)
- 简单理解JSP(一)
- Latch
- latch
- 深入理解latch: cache buffers chains
- android binder简单理解一
- 简单理解netty(一)
- ajax的简单理解一
- 锁存器和自旋锁(Latch&Spinlock)----理解Latch和Spinlock
- 理解TimesTen错误日志信息"waiting for latch"
- springSecurity理解一 一个简单的HelloWorld
- 一维数组的简单理解
- latch: cache buffers chains-热块的简单模拟实验
- & 0xfo,&0x0f
- 【面试三十六计】-【1】-【多线程、并发】
- 作为独立开发者,有哪些可以分享的经验?
- Android RadioGroup 换行, 支持多行多列
- Linux备忘摘录2
- latch简单理解(一)
- JSP页面元素组成
- 更改Oracle SGA
- 实现霓虹灯闪烁效果(UI)
- 2014最受欢迎的云开源项目
- 第一遍机房收费系统总结
- QC中项目迁移详解
- excel
- 我的ExtJs学习之路1---认识Extjs的部分基本组件