本文关注的重点是,避免内核线程的无效唤醒,并且主要是关注消费者线程的设计。
因此,为了省事,这里关与生产者,消费者本身的处理流程可能不够严密。
1. 生产者
一个内核线程,每生产一个商品后,就唤醒消费者,然后自己睡眠1秒钟。
2. 消费者
一个内核线程,每当被唤醒后,就消费商品,然后进入睡眠。
对于消费者线程的这种设计,有几个好处:响应快,平时不占任何cpu。
但这种...
分类:
系统相关 时间:
2015-01-10 11:20:45
阅读次数:
266
一. Reactor模式简介Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的时间发生,Reactor将主动调用应用程...
分类:
其他好文 时间:
2015-01-08 14:47:40
阅读次数:
164
为什么我们需要批处理?
我们不会总是想要立即得到需要的信息,批处理允许我们在请求处理之前就一个既定的流程开始搜集信息;比如说一个银行对账单,我们可以按月生成,并在用户查询之前开启一个批处理流程进行处理;
有时候它能让生意做得更好;比如说在线购物时,并不是说你买了一个产品零售商就立即发货,而是四五个小时后,统一发货;
更好的利用资源;让应该利用的处理能力闲置起来是一个大的浪费,我们可以定制处理让一个机器一个接一个的运行Job可以更好的利用机器的处理能力;...
分类:
编程语言 时间:
2015-01-08 13:22:40
阅读次数:
305
引言我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告诉你如何一步步拖放控件、设置控件属性、编写CodeBehind代码,以实现某个特定的功能。这种做法,实际上是回答了“如何去做”的问题,却没有回答“为什么可以这样做”的问题。尽管我很推崇...
分类:
Web程序 时间:
2015-01-06 15:15:43
阅读次数:
163
01:首先经过web.xml里面的拦截 StrutsPrepareAndExecuteFilter02:然后struts2内置的一些拦截器或用户自定义拦截器 Interceptor03:用户编写的action类 Action04:返回结果 Result配置05:Jsp/html Strut...
分类:
其他好文 时间:
2015-01-05 18:15:10
阅读次数:
109
Scrapy使用了Twisted异步网络库来处理网络通讯。整体架构大致如下(注:图片来自互联网):1、Scrapy Engine(Scrapy引擎)Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流程。2、Scheduler(调度)调度程序从...
分类:
其他好文 时间:
2015-01-05 11:06:05
阅读次数:
319
这里看到书上讲述SQL的查询处理,在SQL中查询是通过select语句以及一些辅助的子句来实现需要的输出,这里使用的是mysql,首先,要理解物理表和虚拟表的区别,物理表就是存储在文件系统上的一个或者多个文件,按照相应的存储数据结构将每一行的数据存储,虚拟表是我们在物理表的基础上构建出来的,可能是全部的表结构,也可能是表中的部分字段或者部分行,甚至可能是表中某些字段经过某种运算之后的结果。但是SQ...
分类:
数据库 时间:
2015-01-03 22:27:35
阅读次数:
395
Java的NIO
实际开发中NIO使用到的并不多,我并不是说NIO使用情景不多,是说我自己接触的并不是很多,前面我在博客园和CSDN上转载了2篇别人写的文章,这里来大致总结下Java的NIO,大概了解下。
NIO和传统IO的对比:
在使用传统IO的时候,不管是使用节点流这种底层流还是使用处理流这种高级流,在底层操作的都是字节,所以性能就不会很好,在使用BufferedReader这种...
分类:
编程语言 时间:
2014-12-31 16:24:30
阅读次数:
337
流控检查(每半秒累计,因此最小留空阀值只能做到每秒2条):import java.text.SimpleDateFormat;import java.util.Date;import java.lang.Thread;/** * 流量控制 * * @author chenx */public cl....
分类:
编程语言 时间:
2014-12-30 18:40:24
阅读次数:
231
看到院子里很多工作流的案例,都很值得深入学习,但觉得很多人喜欢用Jscript作为脚本语言来处理流程,但为什么没人直接用C#来处理流程中的逻辑呢?用WEBFORM程序的话C#可以不编译直接以源码形式运行,当然本质上还是编译后缓存的,但修改起来确实很方便,不会引起重起。所以我的做法是将一个流程做成.....
分类:
其他好文 时间:
2014-12-30 18:27:11
阅读次数:
241