2013年4月30日
摘要: 工作中碰到死锁的情况,很是无奈,今天偶尔想起这个问题,网上搜了一下,发现数据库锁的学问还真不少,下面就我所了解的坐一下总结:数据库基本锁有三个,共享锁,排它锁以及更新锁,锁之间有兼容性,具体请看http://technet.microsoft.com/zh-cn/library/ms186396(v=sql.105).aspx锁兼容性控制多个事务能否同时获取同一资源上的锁。如果资源已被另一事务锁定,则仅当请求锁的模式与现有锁的模式相兼容时,才会授予新的锁请求。首先,兼容性是针对不同事务的,一个事务就没有兼容性的概念了,类似于多线程与单线程,试想单线程还会有死锁吗,直接就转化了!其中共享锁跟排它 阅读全文
posted @ 2013-04-30 17:36 zrf 阅读(2581) 评论(0) 推荐(0) 编辑
  2013年4月27日
摘要: 以前搞过,这次按照印象去做,可总提示失败,首先遇到的问题是,无法发布订阅,这个问题从来没遇到过,网上找了下,说是下面的解决办法,if serverproperty('servername') <> @@servername begin declare @server sysname set @server = @@servername exec sp_dropserver @server = @server set @server = cast(serverproperty('servername') as sysname) exec sp_adds 阅读全文
posted @ 2013-04-27 23:59 zrf 阅读(554) 评论(0) 推荐(0) 编辑
  2013年3月22日
摘要: C++多态的实现原理,C++中虚函数和多态http://blog.sina.com.cn/s/blog_68ff96b70101cmnz.htmlhttp://www.cnblogs.com/BeyondAnyTime/archive/2012/07/22/2603760.html1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动 阅读全文
posted @ 2013-03-22 13:36 zrf 阅读(226) 评论(0) 推荐(0) 编辑
  2012年9月17日
摘要: 垃圾回收器(Garbage Collector)是CLR 里的一个功能,所以它只能处理CLR所管辖范围内的代码内存(即托管内存) 垃圾回收期会检查托管堆中是否有应用程序不再使用的任何对象。如果有,他们的内存就可以回收。 原理: JIT编译器生成本地代码时,还会创建一个内部使用的表。从逻辑上来讲,该表中的每个记录项都代表在方法的本地CPU指令中的一个字节偏移范围,针对每个范围,这个记录项都记录了包含着根的一组内存地址和CPU寄存器。(这个记录项的每个内存地址和CPU寄存器即是根,根只是抽象的说法) 一、 垃圾回收器开始执行时,它假设堆中的所有对象都是垃圾。垃圾回收器沿着线程栈上行以检查所有根.. 阅读全文
posted @ 2012-09-17 11:30 zrf 阅读(1585) 评论(0) 推荐(0) 编辑
  2012年9月10日
摘要: 从定义上说,委托被编译器编译成一个类,所以它可以像类一样在任何地方定义,而事件被编译成一个委托类型的私有字段和两个公有add 和 remove 方法(有点类似于属性的定义)不过这两个方法都有一个参数,这个参数就是委托,所以,它只能定义在一个类里面。 从定义可知,委托是要是需要实例化的,它4个方法:一个构造器,Invoke,BeginInvoke和EndInvoke。构造器有两个参数分别是:一个对象引用,另一个是引用回调方法的一个IntPtr。然而实例化委托的代码的参数只是一个方法的引用。但这不是问题,编译器明白这其中的一切会获取对应的参数。然而事件是不需要实例化的因为他只是一个字段和两个方法. 阅读全文
posted @ 2012-09-10 10:57 zrf 阅读(3666) 评论(0) 推荐(1) 编辑