博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle Latch:一段描绘Latch运作的伪代码
阅读量:6080 次
发布时间:2019-06-20

本文共 1020 字,大约阅读时间需要 3 分钟。

以下这段伪代码来自于
,这段代码并不长但基本对获取latch、spin、sleep的行为都描述清楚了,如果你对latch仍不甚了了,那么这段代码会对你很有帮助:      
Function Get_Latch(latch_name,mode){  If Mode eq ‘immediate’ {    If Fast_Get(latch_name) {      return TRUE    Else {      return FALSE    }  }  Else {    If Fast_Get(latch_name)    Then {      v$latch.gets++      return TRUE    }    Else {      v$latch.misses++      for try = 0 .. large_number      {        if Spin_Get(latch_name)        Then {          return TRUE        }        Else {          T0 = time          Sleep(try)          T1=time          Register_Event("latch free",T1-T0)        }      } -- spin/sleep loop    }  }}Function Fast_Get(latch_name){  If try_to_get_latch(latch_name)  Then {    return TRUE  }  Else {    return FALSE  }}Function Spin_Get(latch_name){  v$latch.spin_get++  for i = 1 to _spin_count  {    If Fast_Get(latch_name)    Then {      return TRUE    }  }}Function Sleep(try){  v$latch.sleeps++  v$latch.sleep[try]++  sleeptime =    decode(try,0,0,1,10,2,20,3,~40,4,~80,...~2000)  sleep(sleeptime)}

转载地址:http://rmqgx.baihongyu.com/

你可能感兴趣的文章
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
如何判断自己适不适合做程序员?这几个特点了解一下
查看>>
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>
report widget not working for external users
查看>>
windows phone 摄像头得到图片是旋转90°
查看>>
Linux--sed使用
查看>>
没有显示器的情况下安装和使用树莓派
查看>>