在多线程程序中,我们经常需要对要访问的资源进行加锁。加锁的目的是为了同步对资源的访问,但是,加锁不可避免的会降低应用的并发量。那么如何在需要加锁的时候,尽可能地提高并发量了?下面是我的一些经验,仅供参考。1.首先,我们要控制好锁的粒度。锁的粒度越大,能支持的并发就越小。我们只需要将真正需要同步的代码块lock住,而不需要同步的代码块不要放在lock块中。当然,锁的粒度也不是越小越好,粒度太细的锁会导致编程很繁琐,而且需要足够的细心和全面考虑方可保证锁不会出
系统 2019-08-29 22:43:04 2003
欢迎点击此处订阅本Blog
系统 2019-08-29 22:35:12 2003
InversionofControlContainersandtheDependencyInjectionpatternMartinFowlerIntheJavacommunitythere'sbeenarushoflightweightcontainersthathelptoassemblecomponentsfromdifferentprojectsintoacohesiveapplication.Underlyingthesecontainersis
系统 2019-08-29 22:26:59 2003
在ListView中的列表项中定义checkbox是一个常见手法,不过如果在listview使用了ViewHolder缓存的话就会遇到一个很恶心的问题,就是列表项错位的问题,为此我想到了一个自认为还算简单的解决方法,就是在自定义Adapter时加入checkbox.setTag(position)这样一句代码。这里checkbox为当前列表项的复选框,position为当前列表项位置。然后为checkbox设置点击事件,checkbox.setOnClic
系统 2019-08-29 22:18:01 2003
之前在VS上装了Builddefinition的扩展,后来发现很不好用,想卸载掉,就增工具下面找add-inmanager,结果找不到,externaltools下面也找不到,google也无果再到后来,每次启动VS,装报需要注册,很唠叨,但也没办法今天打开VS,有提示有升级,灵感来了,在ExtensionsandUpdates是否可以送走这个瘟神呢,果然,在installed里面找到了它,点击uninstall,轻松送走...xeamBuildDefin
系统 2019-08-12 09:27:23 2003
系统 2019-08-12 09:27:18 2003
thrift是一个跨语言的通讯框架,支持c++,java,.net,python,php等。你可以用一种语言写一个服务器,然后另外一种语言写一个客户端,快速搭建一个rpc调用服务。而且它很轻量级,只要引入特定库便可以运行服务和客户端,不需要再安装配置其它复杂的环境和容器。下面介绍如何在ubuntu11.10上安装thrift0.8.0。1.下载thrift,页面http://thrift.apache.org/download/里有相应链接。我下的是0.8
系统 2019-08-12 09:27:14 2003
Description:Needtoturnpagebyoperatingscrollbarandfindouttheelementinthecurrentpage.PreviouspagewillnotexistinDOMstructurewhenturningpage.Solution:Getthetotalheight,buttonheight,scrollbarheightCalculatetotalmoveheight,totalMoveHeig
系统 2019-08-12 09:26:48 2003
工厂模式,类似实际的制造车间中,根据订单的需求来生成/创建某个实例。1.应用场景:需要创建的实例不确定,由输入的数据决定;2.实现方法:实现一个独立的类,接收传入的需要创建实例的名称,在该类中实现创建某个具体实例。3.代码:#coding:utf-8classPerson(object):def__init__(self):self.name=Noneself.gender=NonedefgetName(self):returnself.namedefge
系统 2019-09-27 17:52:31 2002
zip文件是我们经常使用的打包格式之一,python解压和压缩zip效率非凡。python解压zip文档:复制代码代码如下:#/usr/bin/python#coding=utf-8importos,sys,timeimportzipfilefilename='callofdutyblackopszombies_1349649132343_my.zip'#要解压的文件filedir='data/'#解压后放入的目录r=zipfile.is_zipfile(
系统 2019-09-27 17:52:13 2002