本来是不打算写这种基础性的东西的,但是有很多同志经常问我(有同事也有网友)。所以就写一下吧,这个是理解LINUX内核网络子系统的基础,ipconntrack等都是依赖这些基础的。好的,闲话不多说了。来正文。其实netfilter就是依靠一个全局的二维数组nf_hooks[][].可以把这个玩意看成一个8*32的矩阵。矩阵的每个成员就是一个双向链表节点。看看,又是双向链表,内核中双向链表的地位真的太重要了。以双向链表做骨架串起nf_hook_ops这个结构体
系统 2019-08-29 23:33:57 2194
所谓批量加载,即把原本要发送的SQL分批统一发送,比如说原本要发送100条SQL,如果设置batch-size=3,则只需要发送100/3+1=34条,可以提高效率批量加载分为延迟加载和立即加载,先说立即加在首先建立测试数据库CREATETABLEcertificate(idvarchar(100)NOTNULLdefault'',descriptionvarchar(100)default'',PRIMARYKEY(id));CREATETABLEstu
系统 2019-08-29 23:24:26 2194
在许多项目应用中,我们设计的数据库中的一些表中的数据变化的频率很慢,比如,我们有个GameInformation表保存所有已上线的游戏的信息,这个表中的数据变动的频率就很小(因为可能一两个月才会有个新游戏上线或偶尔修改一下已上线游戏的具体信息(通常都是不需紧急更新的)),而且,这个表中的数据又经常被用到,比如根据GameID获取游戏的名字、简介等等。这种表就很适合缓存在内存中,这样可以提供更好的性能和有效地降低数据库的负载。DataRabbit.Appli
系统 2019-08-29 23:20:37 2194
Excel2007制作简单级联下拉框content为了准备毕设论文,利用周末学了点officeword的排版,顺便也看了点excel的功能。下面利用我学到的一点东西,做一个简单的excel级联下拉菜单。因为只学了一点,所以算是比较简单的。最终完成的文件可在此处下载:点击下载1.准备数据利用如下数据,将制作一个简单的“国家”-》“城市”-》“市区”的级联。2.创建名称选中A1-A6,然后在选项卡“公式”中点击“根据所选内容创建”。然后在弹出框中作如下选择,点
系统 2019-08-29 23:13:17 2194
如果我能撇开女明星帕兹•维加在“露西亚的情人”当中的大胆表现的印象,谈到西班牙,让我最为怦然心动的应该是合适的葡萄酒遇上上等的烤羊排的味觉享受了。现在已经形成了某种习惯,如果我的眼前有个放着羊排的餐盘,旁边总会放着一瓶西班牙的RiberaDelDuero。这款酒和在国内比较有名的Rioja一样,是以产地命名的西班牙红酒,采用的葡萄是Tempranillo添帕尼优。在西班牙这款还有一个名字叫TintoFino,不管怎么说在RiberadelDuero地区的优
系统 2019-08-29 23:10:21 2194
YanilleAgilityDungeonNorthofYanilleisasmallshackwithsomeWebsblockingtheentrance.Slashthemwithasharpweaponandyou'llbeabletoentertheAgilityDungeon,mainlyusedforHerbloreandCombattraining.AttheentrancearesomeGiantBats,andaBalancingLed
系统 2019-08-29 22:42:00 2194
今日开始进行OA项目了,OA是一个大型的办公自动化管理系统。汤老师使用6天的时间带领我们做这个项目,显然是不可能全部完成的,我们要做其中重点的几个模块。这个项目将对我们之前学习的struts1、hibernate3、jbpm3、jstl1.1、junit4进行综合性的系统练习。在跟着老师学习新技术时,课堂上我们能很好的理解各知识点。但放到一起,在实际项目中应用时还时感觉有点陌生。不过还好,以前的工作经验和每天整理学习日志让这个项目的开端并未对我构成多大挑战
系统 2019-08-29 22:30:56 2194
/***@param传统的线程的两张创建方法*/publicstaticvoidmain(String[]args){Threadthread=newThread(){@Overridepublicvoidrun(){while(true){try{Thread.sleep(500);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("1:"+Thread.curre
系统 2019-08-29 22:25:42 2194
说过了服务器启动,最后来看一下请求处理过程,服务器启动好后,处于待命状态,请求来了,请求处理过程由分两个建阶段:请求连接建立过程(以NIO为例)前面有提到,从线程池中固定分配了一个线程专门用于等待新连接,就是上图的监听线程,没有请求来时,该线程是阻塞在accept()方法上的,当新连接来建立连接时,accept方法分配了一个socket,并将其设置为nonblocking,最后要做的就是将该socket丢给某个Acceptor线程(基本上机会均等)处理,然
系统 2019-08-29 22:16:55 2194
如果您喜欢这些文章,欢迎点击此处订阅本Blog