摘要:
有疑问可以去itpub讨论:http://www.itpub.net/thread-1804872-1-1.html 对于alter table setunused的用法,查官方文档:alter_table::= column_clauses::= drop_column_clause ::= SET UNUSED ClauseSpecify SET UNUSED to mark one or more columns asunused. Specifying this clause does not actually remove the target col... 阅读全文
摘要:
在数据库打开的情况下备份(归档模式),把表空间或者数据库置于backup模式下,如:SQL>alterdatabasebeginbackup;Databasealtered. 那么当把表空间或者数据库置于backup模式下,会发生什么? 1.表空间会发生checkpoint,j将内存中的dirtydata全部写进数据文件中;2.在数据文件头的SCN号会被冻结住;3.在backup模式下,一个数据块发生了改变,那么整个数据块都会被写进重做数据流中。所以在backup模式下,是允许用户向数据库中写数据的。 做个试验证明一下,表空间置于backup模式下,用户任然可以修改数据。 没有表空间置于 阅读全文
摘要:
Android Chronometer实现了一个简单的计时器,继承自TextView,因此可以使用TextView的text控制属性来控制时间显示的颜色、字体大小等;可以定义时间显示格式,默认“MM:SS”,即“分:秒”;重要方法:setBase(long base) //设置计时器开始的时间基线setFormat(String format) //设置显示时间的格式start() //开始计时stop() //停止计时setOnChronometerTickListener(Chronometer.OnChronometerTickListener l... 阅读全文
摘要:
二分图概念 顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集。 无向图G为二分图的充分必要条件 G至少有两个顶点,且其所有回路的长度均为偶数。 最大匹配 给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配. 选择这样的边数最大的子集称为图的最大匹配问题. 最小覆盖 最小覆盖要求用最少的点(X集合或Y集合的都行)让每条边都至少和其中一个点关联。最小覆盖=最大匹配。 简单路径: 如果一条路径上的顶点除了起点和终点可以相同外,其它顶点均不相同,则称此路径为一条简单路径;起点和终点相同的简单... 阅读全文
摘要:
本节主要介绍缓冲相关的传输类,缓存的作用就是为了提高读写的效率。Thrift在实现缓存传输的时候首先建立一个缓存的基类,然后需要实现缓存功能的类都可以直接从这个基类继承。下面就详细分析这个基类以及一个具体的实现类。 缓存基类TBufferBase 缓存基类就是让传输类所有的读写函数都提供缓存来提高性能。它在通常情况下采用memcpy来设计和实现快路径的读写访问操作,这些操作函数通常都是小、非虚拟和内联函数。TBufferBase是一个抽象的基类,子类必须实现慢路径的读写函数等操作,慢路径的读写等操作主要是为了在缓存已经满或空的情况下执行。首先看看缓存基类的定义,代码如下: clas... 阅读全文
摘要:
本系列文章由七十一雾央编写,转载请注明出处。http://blog.csdn.net/u011371356/article/details/9475979作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 一、前言 在这里雾央先解释一下战争迷雾的概念,以下内容引自维基百科: 战争迷雾(Fogof War),在传统意义上是指战争中由于对敌人情报不清楚而无法确认除友军所在以外的大部分地区,敌人的分布及活动情况。而目前在游戏范围内,尤其是即时战略类游戏中,这个词语出现的频率 阅读全文
摘要:
今晚看了人家写的一个关于C语言内存分配的帖子,发现真是自己想找的,于是乎就收藏了。。。 先看一下两段代码:char* toStr() { char *s = "abcdefghijkl"; return s;}int main(){ cout void main() { char a = 1; char c[] = "1234567890"; char *p ="1234567890"; a = c[1]; a = p[1]; return; } 对应的汇编代码 10: a = c[1]; 00401067 8A 4D F1 mov 阅读全文
摘要:
首先可以调用GetSystemInfo查看有多少个CPU,再通过调用:BOOL WINAPI SetProcessAffinityMask( __in HANDLE hProcess, __in DWORD_PTR dwProcessAffinityMask); 第一个参数是代表要设置的进程,第二个参数是一个掩码,代表可以在哪个CPU上运行。例如:设置5(101)代表在第一个和第三个CPU上运行。 还有其他几个相关的函数:BOOL WINAPI GetProcessAffinityMask( __in HANDLE hProcess,... 阅读全文
摘要:
Qt为了使其动态库最大程度上实现二进制兼容,引入了d指针的概念。那么为什么d指针能实现二进制兼容呢?为了回答这个问题,首先弄清楚什么是二进制兼容?所谓二进制兼容动态库,指的是一个在老版本库下运行的程序,在不经过编译的情况下,仍然能够在新的版本库下运行;需要经过编译才能在新版本下运行,而不需要修改该程序源代码,我们就说该动态库是源代码兼容的。要使一个dll能达到二进制兼容,对于一个结构,对于一个对象,其数据模型应该不变,若有变动,比如在类中增加数据成员或删除数据成员,其结果肯定影响对象的数据模型,从而导致原有数据程员在对象数据模型里的位移发生变化,这样的话编译后的新版本库很可能使程序发生崩溃,为 阅读全文
摘要:
当程序进入死循环或者由于其他原因无法自行终止的时候,就需要强制退出程序了。对于开发软件 Eclipse ,在程序执行超时后,可以点击Terminate 按钮强制退出。那么,我们可不可以通过程序设置一定的时间,当程序运行超过该时长后自行终止或者进行其他操作呢? 查了大量资料后发现,Future类就能满足这个需求。Future类中重要方法包括get()和cancel()。get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而cancel()是取消数据加载。另外一个get(timeout)操作,表示如果在timeout时间内没有取到就失败返回,而不再阻塞。通过这些方法即可实现我们要求。J 阅读全文