1.缘起:对于需要进行线程同步的地方,我们经常用的就是.NET内置的lock关键字和ReaderWriterLock类。lock的功能相对简单,因为它不区分读写,也就是说如果都在lock块中,读线程都会阻塞另一个读线程,在很多读远远多于写的应用中,这会极大地折损性能。所以我们也经常需要使用读写分离的锁ReaderWriterLock,使用它,我们可以明确的指定是要获取“读”锁还是“写”锁。而且,当前的“读”线程是不会阻塞其它的“读”线程的。lock的使用非
系统 2019-08-29 22:05:23 2044
在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:publicclassUnsafeLazyInitialization{privatestaticInstanceinstance;publicstaticInstancegetInstance(){if(in
系统 2019-08-29 22:03:53 2044
先进行通用配置,【第十章】集成其它Web框架之10.1概述10.2集成Struts1.x10.2.1概述Struts1.x是最早实现MVC(模型-视图-控制器)模式的Web框架之一,其使用非常广泛,虽然目前已经有Struts2.x等其他Web框架,但仍有很多公司使用Struts1.x框架。集成Struts1.x也非常简单,除了通用配置外,有两种方式可以将Struts1.x集成到Spring中:最简单集成:使用Spring提供的WebApplicationC
系统 2019-08-29 22:01:12 2044
学习selenium自动化有一段时间了,今天一位自动化测试大侠给了我指导。如下:第一步,先用selenium的固定脚本把手工测试的流程写成脚本eg:driver.FindElement(By.Id("UserName")).Clear();第二步,把这些脚本放到reshaper/nunit里去运行和打报告在testcase加入断言或者验证第三部,重构这些脚本,用页面对象模式(类似于pagefactory)把脚本重构成用页面对象模式:把页面封装起来,业务逻辑
系统 2019-08-12 09:27:24 2044
参考http://www.cnblogs.com/cloudgamer/archive/2010/02/01/LazyLoad.htmlhttp://blog.csdn.net/tiancx/article/details/2907887http://blog.csdn.net/javatwt/article/details/15194811Lazyload介绍Lazyload是通过延迟加载来实现按需加载,达到节省资源,加快浏览速度的目的。网上也有不少类似
系统 2019-08-12 09:27:22 2044
.NetFramework提供了几个基类,用于获取现有文件信息。这些基类位于System.IO命名空间中,主要包括以下几个:Directory和File:这两个类提供一组静态方法,可以通过它们获取任意服务器上可见文件和目录的信息。DriveInfo,DirectoryInfo和FileInfo:这些类使用相似的实例方法和属性来获取同样的信息这两组类提供相似的方法和属性。主要差别在于调用任何方法前必须创建DirectoryInfo或FileInfo对象,而D
系统 2019-08-12 09:27:13 2044
修改价格为原来的0.6154倍!!执行的语句updatecatalog_product_index_pricesetprice=round(price*0.6154),final_price=round(final_price*0.6154),min_price=round(min_price*0.6154),max_price=round(max_price*0.6154)UPDATEcatalog_product_entity_decimalvalSE
系统 2019-08-12 09:26:53 2044
作者:倪茂志邮件:backspray008@gmail.com完成于:2005.12.20文章分为八个部分:一、为什么需要伪造内核二、伪造内核文件三、隐藏进程四、隐藏内核模块五、隐藏服务六、隐藏注册表七、隐藏文件八、关于端口另:建议先看看最后那些参考文章。一、为什么需要伪造内核:IceSword(以下简称IS)为了防止一些关键系统函数(包括所有服务中断表中的函数以及IS驱动部分要使用到的一些关键函数)被patch,它直接读取内核文件(以下简称“ntoskr
系统 2019-08-12 09:26:47 2044
先摘一点网上的介绍libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libeventbased,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。接着我们先直接看一个例子,该例子每隔几秒输出一个句子#include#inc
系统 2019-08-12 09:26:47 2044
OracleSQL语句的运行环境分为多个不同的层次,主要包括实例级别,会话级别,语句级别,其优先级依次递增。即语句级别的执行环境具有最高的优先权,会话级别次之,实例级别最低。反过来,实例级别的环境设置影响全局,而会话级别的则影响当前会话,语句级别的设置当然也就只影响当前语句。由此可知,运行环境中每一个环节的参数都对最终的数据库性能或所执行的SQL语句有直接的影响。因此在对数据库优化或调试SQL时,获得当前SQL语句运行环境显得尤为重要。为此,Oracle提
系统 2019-08-12 01:53:59 2044