现在位置: 首页 > cuddle发表的所有文章
  • 11月
  • 01日
综合 ⁄ 共 507字 评论关闭
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。 第一范式要求属性是不可分。 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖 在第二范式中组合主键(AB)里面的A或者B与其他字段不能存在组合重复,为解决这个问题,通常的做法是咱们不用组合主键,添加一个ID,做为单一主键即可满足第二范式。如果不想添加ID,请满足组合主键(AB)里面的A或者B与其他字段不能存在组合重复。 第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖......
阅读全文
  • 08月
  • 11日
综合 ⁄ 共 5109字 评论关闭
libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库,今天学习下。总体来说,libevent有下面一些特点和优势:* 统一数据源, 统一I/O事件,信号和定时器这三种事件; * 可移植,跨平台支持多种I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等; * 对并发编程支持,避免竞态条件; * 高性能,由事件驱动; * 轻量级,专注于网络; libevent有下面几大部分组成: * 事件管理包括各种IO(socket)、定时器、信号等事件,也是libevent应用最广的模块; * 缓存管理是指evbuffer功能; * DNS......
阅读全文
  • 06月
  • 07日
综合 ⁄ 共 3242字 评论关闭
线程是有趣的 线程类似于进程。如同进程,线程由内核按时间分片进行管理。在单处理器系统中,内核使用时间分片来模拟线程的并发执行,这种方式和进程的相同。而在多处理器系统中,如同多个进程,线程实际上一样可以并发执行。 那么为什么对于大多数合作性任务,多线程比多个独立的进程更优越呢?这是因为,线程共享相同的内存空间。不同的线程可以存取内存中的同一个变量。所以,程序中的所有线程都可以读或写声明过的全局变量。如果曾用 fork() 编写过重要代码,就会认识到这个工具的重要性。为什么呢?虽然 fork() 允许创建......
阅读全文
  • 12月
  • 24日
算法 ⁄ 共 2576字 评论关闭
题意: 有K台挤奶机器和C头牛(统称为物体),每台挤奶机器只能容纳M头牛进行挤奶。现在给出dis[K + C][K + C]的矩阵,dis[i][j]若不为0则表示第i个物体到第j个物体之间有路,dis[i][j]就是该路的长度。(1 <= K <= 30,1 <= C <= 200) 现在问你怎么安排这C头牛到K台机器挤奶,使得需要走最长路程到挤奶机器的奶牛所走的路程最少,求出这个最小值。 分析: 利用Floyd算法求出每个奶牛到每个挤奶机的最短距离。 则题目变为: 已知C头奶牛到K个挤奶机的距离,每个挤奶机只能有M个奶牛,每个奶牛只能去一台挤奶机,求这......
阅读全文
  • 06月
  • 10日
综合 ⁄ 共 5604字 评论关闭
==============常用语法=================三.EG.一个对象BOOK1.输出 ${book.name}空值判断:${book.name?if_exists },${book.name?default(‘xxx’)}//默认值xxx${ book.name!"xxx"}//默认值xxx日期格式:${book.date?string('yyyy-MM-dd')}数字格式:${book?string.number}--20${book?string.currency}--<#-- $20.00 -->${book?string.percent}—<#-- 20% -->插入布尔值:<#assign foo=ture />${foo?string("yes","no")} <#-- yes -->   =============逻辑判断==================2.a:<#if condition>......
阅读全文
  • 06月
  • 08日
综合 ⁄ 共 202字 评论关闭
  打个比方一个表有多字段,字段里面有数据 比作一个楼里有很多房间,房间里面有家具 alter是改房间,update是改家具 用法,表名是"你家" 在你家加个字段"厕所"就是 ALTER TABLE 你家 ADD 厕所 VARCHAR( 8 ) VARCHAR( 8 )表示8平米 把你家厨房改厕所就是 ALTER TABLE 你家 CHANGE 厨房 厕所 VARCHA(8) 在厕所改马桶就是(你家以前是蹲式马桶) update 你家 set 厕所=坐式马桶
阅读全文
  • 05月
  • 09日
综合 ⁄ 共 4380字 评论关闭
      最近正在写一个程序,其中有一个需求是程序运行时,必须要将特定的光盘放在光驱之中,因此需要枚举当前系统中所有的光驱并逐一识别是否是符合要求的光盘。       通过系统函数GetLogicalDriveStrings与GetDriveType要以完成上述需求,简述如下。       1.函数GetLogicalDriveStrings        其原型如下:              DWORD  GetLogicalDriveStrings(                  DWORD nBufferLength,                  LPTSTR lpBuffer)        其第二个参数是一个缓冲区,用于存储驱动器信息;第一个参数nBufferLength指明第二个参......
阅读全文
  • 05月
  • 04日
综合 ⁄ 共 8370字 评论关闭
1.选择最有效率的表名顺序(只在基于规则的优化器中有效)        SQLSERVER的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,必须选择记录条数最少的表作为基础表,当SQLSERVER处理多个表时,会运用排序及合并的方式连接它们,     首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行排序;然后扫描第二个表(FROM子句中最后第二个表);最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并     例......
阅读全文
  • 04月
  • 14日
综合 ⁄ 共 5980字 评论关闭
log4j常用输出格式 %c   列出logger名字空间的全称,如加上{<层数>}表示出从最内层算起的指定层数的名字空间 %X  按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。 %p  日志信息级别 %d   %d{<日期格式>}:日志信息产生时间,使用ISO8601定义的日期格式 %C   日志信息所在地(全限类名) %m   产生的日志具体信息 %n    输出日志信息换行 %F 显示调用logger的源文件名 %l     输出日志事件的发生位置,包括类目名、发生的线......
阅读全文
  • 04月
  • 12日
综合 ⁄ 共 11016字 评论关闭
高性能与多核处理器 摘要    随着越来越多的移动手持终端支持视频功能,对于流媒体内容及实时通信的网络支持需求也在显著上升。虽然对已部署的 3G 媒体网关进行升级可以支持较低的分辨率和帧速率,但这种由于自身的有限处理能力而进行的升级并不能满足视频成为主流应用的需求。 为了使可扩展视频应用能够支持高密度 (HD),需要显著提高视频处理能力,而多核数字信号处理器 (DSP) 不但拥有能满足此类需求的增强型视频处理功能,同时还能充分满足运营商在可扩展性和低功耗方面的需求。 本文旨在介绍一种全新的多内核平台,其能够通......
阅读全文
  • 04月
  • 09日
综合 ⁄ 共 1217字 评论关闭
原帖:http://blog.sina.com.cn/s/blog_6a2061a20100n0or.html 碰撞筛选就是一个防止某些形状发生碰撞的系统。按照具体需求设置哪些物体跟那些物体发生碰撞,跟哪些物体不发生碰撞。 Box2D通过种群跟组索引支持碰撞筛选。 组索引比较简单,设置其shapeDef的groupIndex值即可,例如boxDef.filter.groupIndex = 1。 通过groupIndex值的正负来确定同一个组的所有形状总是发生碰撞(正)或永远不发生碰撞(负),需要特别注意的是两个不同的付索引是依然会发生碰撞的,例如一个圆的GroupIndex值为-1,一个矩形GroupIndex值为-2......
阅读全文
  • 03月
  • 19日
综合 ⁄ 共 1507字 评论关闭
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.   usage: am [subcommand] [options]     start an Activity: am start [-D] <INTENT>         -D: enable debugging     send a broadcast Intent: am broadcast <INTENT>     start an Instrumentation: am instrument [flags] <COMPONENT>         -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)         -e <NAME> <VALUE>: set argument <NAME> to <VALUE>         -p......
阅读全文