上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 26 下一页
摘要: 接上面java actor模型框架ujavaactorhttp://zhwj184.iteye.com/admin/blogs/1613351,上面的示例比较复杂,写一个简单点的示例:import java.util.HashMap; import java.util.Map; import com.ibm.actor.AbstractActor; import com.ibm.actor.Actor; import com.ibm.actor.DefaultActorManager; import com.ibm.actor.DefaultMessage; import com.ibm.a. 阅读全文
posted @ 2012-07-31 15:40 zhwj184 阅读(415) 评论(0) 推荐(0) 编辑
摘要: Actor模型是一种基于协程的消息传递模型,在并行计算和并发的消息传递中有很好的性能表现。一般的actor模块框架提供了超轻量级的线程和工具,可以在这些线程之间进行快速、安全、零复制的消息传递。在elang,ruby,lua等语言中都是直接在VM级别支持协程,VM帮你做context的保存和恢复。而在java中,却没有内置actor模型实现,但是有几个开源框架也模拟了actor模型的实现。基于 actor 的系统通过实现一种消息传递模式,使并行处理更容易编码。在此模式中,系统中的每个 actor 都可接收消息;执行该消息所表示的操作;然后将消息发送给其他 actor(包括它们自己)以执行复杂的 阅读全文
posted @ 2012-07-31 13:08 zhwj184 阅读(399) 评论(0) 推荐(0) 编辑
摘要: jetty的org.eclipse.jetty.servlets.DoSFilter类是用来实现Dos攻击预防的filter,里面涉及到一些变量,先了解下变量的含义: protected long _delayMs;超过最大处理请求数当前请求的等待时间,-1立即拒绝,0,无限等待,正数表达等待的毫秒数 protected long _throttleMs;异步等待获取信号量的时间 protected long _maxWaitMs;阻塞等待获取信号量的时间 protected long _maxRequestMs;请求处理最大时间限制 protected long _maxIdleT... 阅读全文
posted @ 2012-07-29 15:10 zhwj184 阅读(452) 评论(0) 推荐(0) 编辑
摘要: jetty7对sessionId的处理,首先入口在SessionHandler.java的doScope方法,jetty的源码分析可以参考这篇http://zhwj184.iteye.com/admin/blogs/1161542。 /* ------------------------------------------------------------ */ /* * @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http... 阅读全文
posted @ 2012-07-29 10:52 zhwj184 阅读(463) 评论(0) 推荐(0) 编辑
摘要: tomcat 7对sessionId的处理:首先解析request请求中的sessionID:从AjpProcessor.java的process(SocketWrapper<Socket> socket)调用CoyoteAdapter.process里面有的postParseRequest(org.apache.coyote.Request req,Request request,org.apache.coyote.Response res, Response response) 就有解析获取sessionid的过程 // Now we have the context, we 阅读全文
posted @ 2012-07-29 09:09 zhwj184 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 第八章 多列属性 目标:存储多值属性 为一个bug设置多个标签 反模式:创建多个列,为bugs创建tag1,tag2,tag3几个列保存标签。标签必须放于其中一个。 1.查询数据,比如搜索这三列,可以使用in语句 2.添加和删除 update bugs set tag1=nullif(tag1,'perfor'),tag2=nullif(tag2,'perfor'),tag3=nullif(tag3,'perfor')这个能把值更新到其中为空的那一列,如果都不为空,则不作更新。 3.确保唯一性。无法确保三列的值不一样。 4.处理不... 阅读全文
posted @ 2012-07-22 16:53 zhwj184 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 第二章:乱穿马路 2.1 目标:存储多值属性 2.2 反模式:格式化的逗号分隔列表 模糊匹配无法使用索引,影响性能;多表关联麻烦,却极大影响性能;执行聚合查询不方便开发和调试;更新某个字段值必须执行两次;字段内容出错数据很难恢复修正;选择一个用不用到的分隔符,无法确认不适用;列表长度限制; 2.3 解决方案:创建一张交叉表,实现两张表的多对多的关联第三章:单纯的树 目标:分层存储和查询 案例:文章和评论 每篇文章有多篇评论,每个评论可以引用另外的评论。 反模式: 最简单的解决方案就是在同一张表中存储该评论id的父节点id(parent_id) 邻接表的使用查询:select c1.... 阅读全文
posted @ 2012-07-21 20:49 zhwj184 阅读(245) 评论(0) 推荐(0) 编辑
摘要: ReentrantReadWriteLock 可重入的读写锁什么叫可重入:就是同一个线程可以重复加锁,可以对同一个锁加多次,每次释放的时候回释放一次,直到该线程加锁次数为0,这个线程才释放锁。什么叫读写锁: 也就是读锁可以共享,多个线程可以同时拥有读锁,但是写锁却只能只有一个线程拥有,而且获取写锁的时候,其他线程都已经释放了读锁,而且在该线程获取写锁之后,其他线程不能再获取读锁。我们先看下下面两个示例:ReentrantReadWriteLock.java自带的两个示例 * class CachedData { * Object data; * volatile boolean c... 阅读全文
posted @ 2012-07-05 16:45 zhwj184 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 今天项目发布,在预发布机器上居然出现应用启动不到10分钟 CPU使用率从不到1%飙升到95以上,load从不到1升到15以上,然后当然应用就不可用了,第一次还奇怪为什么10分钟后就变成这样,然后找不到原因,异常还一堆其他的异常,而且还有其他的需求一起发布,所以还怀疑其他需求的问题,然后就单独发布自己的需求代码,重新发布后大概10分钟后又出现这个问题,想了想,一堆的超时,应用访问也是超时,开始怀疑线程的问题,通过jstack dump java进程的线程栈信息,通过分析日志发现了 34个线程有16个线程的状态处于同样一处代码上的runnable状态,"qtp1041301507-215 阅读全文
posted @ 2012-07-02 22:09 zhwj184 阅读(192) 评论(0) 推荐(0) 编辑
摘要: import org.*; import org.v1.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.*; import javax.swing. 阅读全文
posted @ 2012-06-30 22:39 zhwj184 阅读(605) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 26 下一页