CoolMind


If you cannot measure it, you cannot improve it.

Multitasking Management in the Operating System Kernel

这篇文章翻译自KUKURUKU. 系统中的所有任务共享一个处理器上的时间,我们需要做多任务管理。或者说伪多任务,因为所有任务是共享一个处理器上的时间。首先,我会介绍多任务的类型(协作式/抢占式);然后我会继续介绍抢占式多任务中的调度原则。这篇文章已经针对第一次想从内核级别上理解多任务的读者做...

iostream用法

iostream是C++中一个比较复杂的库,其设计的时候还应用了为人所诟病的钻石继承。在GoNative大会上,有人提问iostream那么复杂,而且相对于C的库函数,其效率相对低,为什么还要将其一直留在标准中。这个问题得到了如下回答(个人总结): C++中的iostream是安全...

C++中动态内存分配

在C++语言中,总共有5种内存分配区域:栈,堆(heap),自由存储区(free store),常量存储区,全局(静态)存储区。其中堆是用malloc/free一对系统库函数来管理动态内存的申请和释放,自由存储区是用new/delete一对操作符来动态管理内存的分配和释放。new/delete...

C++中模板的学习

C++中的模板是C++中实现元编程的一种主要途径。元编程,即编写程序的程序。维基百科上说: Metaprogramming is the writing of computer programs that write or manipulate other programs (or th...

sizeof的总结

C/C++,Java中都有字节对齐的概念。字节对齐的目的是加快CPU的访问速度,因为将字节对齐的相应长度的整数倍位置上,CPU取数据会更快。为什么呢? Cache可以看成一些可以用非常快的速度进行访问的临时内存。但是Cache的容量不大,比如一般一级Cache只有几K到几十K,二级Ca...

Remove comments in java or C++

近段时间其实也没有做什么具体的事,只是抽了很多时间看了很多书。虽然自己也很紧张,但是在这种忙里偷闲的时间里也不忘学学脚本。 这段时间在Code Academy上学习了Ruby和Python。最开始的第一印象是:为什么Python没有对类中的成员变量或者成员函数进行一些作用域的设定? Rub...

Closures in Ruby

Closures in Ruby @(Technology)[Ruby|Closure] 这篇文章是翻译自:Paul Cantrell。 我推荐先运行这个文件,然后一边读,一边观察其后的结果。当然你也可也先删除所有的注释,猜测所有程序的结果,以此来测试你自己Ruby能力。 一个闭包是满足...

Implementation of A star algorithm

a* 算法在人工智能领域应用比较广泛。这几天在USTC ACM上刷problem 1012,题中需要解决8-puzzle问题,有两种解法,一种是BFS,另外一种就是a*算法。之前在Java上实现过,但是当时是利用Princeton的一个类:MinPQ,最小的优先级队列。 在C++中,其实也有...