条件变量详解在上一篇文章结束时,我描述了一个比较特殊的难题:如果线程正在等待某个特定条件发生,它应该如何处理这种情况?它可以重复对互斥对象锁定和解锁,每次都会检查共享数据结构,以查找某个值。但这是在浪费时间和资源,而且这种繁忙查询的效率非常低。解决这个问题的最佳方法是使用pthread_cond_wait()调用来等待特殊条件发生。了解pthread_cond_wait()的作用非常重要--它是POSIX线程信号发送系统的核心,也是最难以理解的部分。首先,
系统 2019-08-29 22:16:36 2285
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/atomic-operation更多并发编程文章,http://ifeve.com/?p=2911引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomicoperation)意为”不可被中断的一个或一系列操作”。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子操作的。2
系统 2019-08-29 22:04:19 2285
转载自:http://www.cnblogs.com/yjmyzz/archive/2011/03/03/1969859.htmlobj-c中有一类对象:NSArray,NSDictionary,NSString,NSNumber,NSDate,NSData以及它们的可变版本(指NSMutableArray,NSMutableDictionary...这一类),都可以方便的将自身的数据以某种格式(比如xml格式)序列化后保存成本地文件。示例代码:NSArr
系统 2019-08-29 22:01:55 2285
最近有好几个咨询如何动态部署Bean/动态部署Springmvc控制器;首先声明下:基于普通Java/JavaEE环境的不适合做动态部署;如果你有这种需求请考虑使用如PlayFramework/Grails这种框架。但是还是有少量朋友会有这种需求:我的应用中只有少量几个需要动态部署的组件;好吧,那我来写一个能动态部署Bean/Controller的工具类吧。注意,因为Spring整个框架非常好的遵循开闭原则,所以只能通过反射来操作,而且目前不考虑Sprin
系统 2019-08-29 22:00:48 2285
前两天在工作过程中遇到一个已离职的同事在TFS锁定签出了部分文件,另外的同事想更改,又改不了。于是我用管理员帐户登录上去,找了很久,发现TFS没有可视化界面直接撤销别人签出的文件。之后在baidu,google一番,发现可以使用tfundo命令撤销他人签出的文件,可是试了挺久的,一直没有成功,只是提示失败,具体原因也没有说,开始怀疑是权限问题,后面发现权限的设置也没有错。应该不是权限问题。许久之后,请教以前的一位同事得知,可以装个TFS插件(TFSPowe
系统 2019-08-12 09:27:16 2285
网上配置文档众多,但是对着他们的文档来做老是出问题,于是花了点时间研究了一下,写成总结,方便以后查阅。也希望学习sphinx的朋友能少走弯路。Coreseek的安装请参考:http://blog.chinaunix.net/uid-20639775-id-3261834.html。一、sphinx的配置sphinx配置文件结构介绍Sphinx的配置文件结构如下:Source源名称1{#添加数据源,这里会设置一些连接数据库的参数比如数据库的IP、用户名、密码
系统 2019-08-12 09:27:13 2285
创建版本库$gitclone#克隆远程版本库$gitinit#初始化本地版本库修改和提交$gitstatus#查看状态$gitdiff#查看变更内容$gitadd.#跟踪所有改动过的文件$gitadd#跟踪指定的文件$gitmv#文件改名$gitrm#删除文件$gitrm--cached#停止跟踪文件但不删除$gitcommit-m“commitmessage”#提交所有更新过的文件$git
系统 2019-08-12 01:55:17 2285
最近一直在研究权限,今天终于把权限搞定了以后准备自己写个商城,对以后的帮助非常大的。下面简单谈谈关于权限的实现.权限主要分为以下三个类:用户、角色、权限表权限主要分为三个步骤:1、安装(初始化数据)管理员:(超级管理员)一个拥有所有权限的用户,这个用户在程序安装时就要初始化,权限数据:这个表主要存储权限的名字和url,这个权限主要有两个作用,一个是菜单的显示,其中一级菜单没有url只是分类的作用。2、权限的分配:权限的分配主要是针对某个角色和权限建立管理,
系统 2019-08-12 01:54:20 2285
创建临时表#Resultifobject_id('tempdb..#Result')isnotnulldroptable#Resultcreatetable#Result(EmployeeNMnvarchar(50),CriterionNamenvarchar(200),EvalPointsmallint)查询结果集添加到临时表insertinto#ResultSELECTH.EmployeeNMEmployeeNM,CriterionName+'@'+E
系统 2019-08-12 01:54:02 2285
随手写了个小工具,主要为了测试不同混淆程度的javascript脚本的加载速度1.[代码]Timestamp.js(function(){if(typeofthis.Timestamp=='undefined'){/***Globaltimestampmanager*@authorJanpoem*createdat2011.03.30*/this.Timestamp=(function(){varpool={'page_init':newDate()};r
系统 2019-08-12 01:53:54 2285