`
teamojiao
  • 浏览: 350292 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
1.引言做c/c++编程的对#include指令都不会陌生,绝大多数也都知道如何使用,但我相信仍有人对此是一知半解,C:#include <stdio.h>C++:#include <iostream>表示包含C/C++标准输入头文件。包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp,.hxx,.cxx等,甚至.txt,.abc等等都可以2.名词解释preprocess预处理:为方便编译器处理而设置的一种机制,包括一些常用预处理指令和语句,我们统称为预处理系统。如#include #define #if...#els ...
在新项目中,除了一些框架所依赖的配置文件使用XML外,基本没有使用XML。JSON基本替代了原来XML在程序内的位置。在以前,我们不愿意使用一种私有的格式,于是选择了XML。选择XML的理由,可能是大家都用它,所以我们也用它 ...
FileIterator 我们在开发中,经常需要遍历一个目录下的所有文件,常用的办法就是使用一个函数递归遍历是常用的办法。例如:<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/ ...
ID生成算法,其中一种就是使用GUID(又称UUID),使用128位存储。UUID的一个问题是太长,可读性太差,人脑无法记忆。替代方案之一,就是使用关系数据库的自增长字段,自增长字段的一个问题是,无法预先创建一个ID,只能够在保存的时候才能生成ID,这对于批量关联插入数据来说,不满足需求。替代方案之二,就是使用一个记录ID的表,每次加一,在事务中使用Select FOR UPDATE来读取然后UPDATE SET FVALUE = FVALUE + 1,或者使用我之前文章中所提到的CAS算法。 这样做,会导致性能低下,每生成一个ID的成本都很高。替代方案之三,就是把ID分成两部分,Seed和In ...
超长短信的处理办法 GSM 03.40规范(TP-06 1999-12-15 7.4.0)中规定了SME对于超长短信的合并处理。规范制定至今,已经超过6年,绝大多数正在使用的手机,都支持这一功能。CMPP协议中,CMPP_SUBMIT_MESSAGE中有两个字段pk_total和pk_numer,恰看起来,这就是发送超长短信的设置参数,其实不然,这两个参数的设置,应该是没有用处。发送超长短信,需要做两件事情:设置TP_udhi的值设置为1,在消息正文中增加协议头。协议后可以两种格式,分别是长度为6和长度为7的协议头。格式如下:6位协议头格式:05 00 03 XX MM NNbyte ...
关于P2P下载的思考 1、使用多路复用或者异步I/O模型,这本是服务器段常用的技术,但在P2P应用,每台机器既是服务器,又是客户端,共享了一个十分受欢迎的文件,可能会有很多希望连接者,或者你下载一个受欢迎文件时,可能搜索到数百上千的Peer,此时就很有必要采用多路复用或者异步I/O技术,降低应用程序所占用的资源。2、支持传统的协议,包括HTTP和FTP,其实这两种技术能够和P2P网络集成,其中一种办法就是,在提供下载地址的同时提供一个种子文件下载,例如服务器中提供了ABC.rar文件,同时提供一个ABC.rar.md5文件允许下载,这样P2P下载工具下载时,通过md5在P2P网络中搜索更多 ...
关于MessageDigest算法选择的问题 MessageDigest的选择好多,包括MD2、MD4、MD5、SHA-1、SHA-256、RIPEMD128、RIPEMD160等等。我们如何选择呢?选择考虑在两个方面:安全、速度。MD2很安全,但是速度极慢,一般不用。速度方面,最快的是MD4,MD5比SHA-1快速度排名:MD4 > MD5 > RIPEMD-128 > SHA-1 > REPEMD-160按照《应用密码学手册》提供的表格数据为:MD4 长度 128 相对速度 1MD5 长度 128 相对速度 0.68REPEMD-128 长度 128 相对速度 ...
精巧好用的DelayQueue 我们谈一下实际的场景吧。我们在开发中,有如下场景a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。b) 缓存。缓存中的对象,超过了空闲时间,需要从缓存中移出。c) 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。一种笨笨的办法就是,使用一个后台线程,遍历所有对象,挨个检查。这种笨笨的办法简单好用,但是对象数量过多时,可能存在性能问题,检查间隔时间不好设置,间隔时间过大,影响精确度,多小则存在效率问题。而且做不到按超时的时间顺序处理。 这场景,使用DelayQueue最适合了。DelayQueue是java ...
非阻塞算法思想在关系数据库应用程序开发中的使用 非阻塞算法的关键思想就是CAS,CAS是compare and set的缩写,也常被称为lock-free或者wait-free,通过把compare和set两个操作原子化,使得不需要使用锁,但是能够解决并发中的资源争用问题。由于CAS常常是一个回退算法+死循环,所以又被称为spin-lock。由于CAS没有使用锁,线程持续执行,又称为非阻塞算法(non-blocking)。术语不统一,但是都差不多表示同一个东西,我都列在这里,方便初学者理解。CAS通常并发性能会更好,原因有二:1、CAS由硬件提供指令支持2、整个思路属于乐观锁定,而不同于 ...
首先,还是通过export命令将某表数据导出为del格式-- Start of generated script for 192.168.0.85-INFO85-INFOSPY (db2inst1) --  Oct-11-2008 at 14:53:28 EXPORT TO 'C:\DATA_WHITELISTS_R.del' OF DEL   SELECT * FROM "DB2INST1"."DATA_WHITELISTS_R"; #SYNC 10;   -- End of generated script for 192.168.0.8 ...
涉及百万级,千万级测试数据基础构建,我们不可能通过程序批量加入或者insert的方式进行数据构建,以下介绍一种简单的方法,可以构造任意数据表(包括时间格式,浮点数等)   首先,使用下面的语句将,数据格式导出   -- Start of generated script for 192.168.0.85-INFO85-INFOSPY (db2inst1) --  Oct-11-2008 at 14:53:28 EXPORT TO 'C:\DATA_WHITELISTS_R.del' OF DEL   SELECT * FROM "DB2INST1"."D ...
CMPP和SMPP协议比较   并非同类型协议CMPP和SMPP都是短信协议中的一种,但它们不是同一类型的协议。SMPP和ESME和SMC(短信中心)之间的协议,而CMPP是SP和中国移动ISMG之间的通讯协议。 以下是CMPP 3.0文档中的图示。 与CMPP对应的协议有,联通的SGIP协议,中国电信的SMGP协议,网通的CNGP协议。 作为SP,只需要了解CMPP,不需要了解SMPP。 最新版本和兼容SMPP协议是一个国际标准,有SMS论坛制定,官方网址为smsforum.net,截至2006年7月2日,最新版本是5.0。曾经流行的版本是3.3、3.4。SMPP协议向后兼容的 ...
 一,试用期期限过长。试用期期限并非可长可短,江苏省劳动合同条例规定,劳动合同不超过6个月,试用期不得超过15天;劳动合同在6个月至1年期间的,试用期不超过30天;劳动合同在1年至3年期间的,试用期不超过60天。如果 ...
经常看到有些类调用了Serializable接口,而有些类又没有调用Serializable接口。那么什么情况下要调用Serializable接口。    首先来了解一下Serializable。(类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。序列化接口Serializable没有方法或字段,仅用于标识可序列化的语义)    实现了Serializable接口的对象,可将它们转换成一系列字节,并可在以后完全恢复回原来的样子。这一过程亦可通过网络进行。这意味着序列化机制能自动补偿操作系统间的差异。换句话说,可以先在 ...
对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程的Director要。刚才google到一篇文章,总算清楚了。在这里转贴一下这位richardluo的比喻。简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高),于是我需要找一帮民工,他们会砌墙,还得找个设计师,他知道怎么设计,我还要确保民工听设计师的领导,而设计师本身也不干活,光是下命令,这里砌一堵墙,这里砌一扇门,这样民工开始建设,最后,我可以向民工要房子了。在这个过程中,设计师是什么也没有, ...
Global site tag (gtag.js) - Google Analytics