- 浏览: 68058 次
- 性别:
- 来自: 北京
最新评论
-
a912770106:
分析的很好,讲的很清楚,希望后面的能分析完
commons-pool-1.6部分源码分析
文章列表
为什么要在nginx中使用lua嵌入c程序?
1.性能上的考虑,lua毕竟是一个脚本语言,对于某些特定的功能如果用纯lua来实现性能上一般都会比用c要逊色一些。
2.没有现成的库供我们使用,实际上互联网上已经有很多现成的第三方lua库供我们使用,比如读取redis数据的resty.redis;将json转化为lua本地数据格式的cjson等。当找不到合适我们使用的第三方库的时候,我们就需要自己动手了。当然如果能够直接使用lua来写一个满足我们自己使用的库也是可以的,如果考虑到性能问题,用c来实现是一个不错的选择。
我们这里打算实现两个方法
1.对一个字符串做hash并对其hash值取摸,在 ...
背景
程序员一提到编码应该都不陌生,像gbk、utf-8、ascii等这些编码更是经常在用,但时不时也会出个乱码,解决问题的方法大部分都是google、baidu一顿搜,最后可能在某个犄角旮旯里找到一点信息,然后就机械的按部就班的模仿下来,结果问题可能真就迎刃而解了,然后就草草了事,下回遇到相似的问题,可能又是重复上面的过程。很少有人有耐心去花精力弄明白这写问题的根本原因,以及解决这些问题的原理是什么。这篇文章就是通过一个实际案例,试着去讲清楚什么是编码,乱码又是怎么产生的,以及如何解决。该案例是从lua_cjson.c这个库开始的,对这个库不熟悉也没关系,也不需要熟悉它,我们只是借用它来说明乱 ...
类图关系
为了简单起见,该图只表现继承和实现关系
大部分情况下我们只使用ObjectPool和PoolableObjectFactory的相关实现类,我们重点分析GenricObjectPool类
配置参数
类GenericObjectPool.Config定义了相关参数:
// 池中最大空闲实例个数
int maxIdle=8
// 池中最小空闲实例个数 (evictor会用到)
int minIdle=0
// 可以从池中拿走的最多实例的个数,就是通常我们说的池大小
// 小于0则代表没有限制
int maxActive=8
// 当池耗尽并 ...
什么是数字签名
An introduction to Digital Signatures,by David Youd
原文:http://www.youdzone.com/signature.html
Bob 有两个秘钥,一个叫公钥,另一个叫私钥。
任何有需要的人都可以得到Bob的公钥,但是私钥只有Bob自己持有。秘钥被用来加密信息。加密信息意味着“打乱”它,只有拥有合适秘钥的人可以读取它。其中一个可以加密数据,另一个可以解密数据。
Susan(以下展示的)能够用Bob的公钥加密信息,Bob用自己的私钥来解密这个信息。Bo ...
查看进程id,线程id;下面这条命令可以得出哪个线程对应哪个进程
ps -eo pid,lwp -L
e:显示所有的进程
o:自定义显示
f:全格式
h:不显示标题
l:长格式
w:宽输出
a:显示终端上的所有进程,包括其他用户的进程
u:有效用户
r:只显示正在运行的进程
x:显示没有控制终端的进程
pid:进程id
lwp:线程id
ruser:用户id
ppid:父进程id
psr:运行该线程的CPU的序号
args:命令行参数
L:显示进程,并尽量显示LWP和NLWP(线程个数)
查看线程占用CPU情况
top
d:后接整个界面更新的描述,默认 ...
多线程IO密集型测试
- 博客分类:
- 其他
/**
* 多线程方式测试
* 检查多线程读取是否可以节省时间
*/
@SuppressWarnings("unchecked")
public static void main(String[] args){
try{
//线程池大小
int poolSize = 20;
long startIndex = 0;//开始位置
int batchSize = 1024*1024*3;//读大小,或缓存大小
long total =new Fi ...
连接数据的步骤
1.注册驱动
2.建立连接
3.创建执行SQL的语句(Statement)
4.执行语句
5.处理执行结果(ResultSet)
6.释放资源
public static void main(String[] args) throws ClassNotFoundException, SQLException{
//1.注册驱动
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//System.setProperty("jdbc.drivers",&qu ...
获取程序中对象的大小:
有jar文件SizeOfObjetct.jar,内容如下:
SizeOfObject.java类
META-INF/MANIFEST.MF文件
SizeOfObject.java类package com.masf;
import java.lang.instrument.Instrumentation;
/**
* 这是一个代理类
* @author
*
*/
public class SizeOfObject {
static Instrumentation inst;
//JVM负责调用该方法 ...
工作中我经常会遇到这样一个场景:
一个可以进行检索的功能列表;查询前我们需要输入一些检索数据,然后后台通过接收这些检索数据,进行Hql拼装,最后形成形如 select filed1,filed2 from table where a=b and c > d 这样的检索语句。
如果检索数据少的话拼装起来不算麻烦,但一旦检索数据很多,代码看起来就会很乱;
我觉得用注解的方式比较优雅;
这里给出使用的片段:这是一个用于封装所需检索数据的对象:
@Search(name="projectName",signType=SignType.EQ)
privat ...