存档

2012年3月 的存档

谈谈定时器(Timer)的使用

2012年3月11日 1 条评论

过去的半年,陆陆续续看过不少新同学写的代码,自己也写了不少代码。在这过程中,还是有不少感触的。我们知道,定时器(Timer)在程序中的是非常有用的一种utility。今天这篇文章,就结合自己看代码、写代码过程中的一些经验,来谈谈定时器的使用,包括基本的用法,还有使用过程中的一些误区。

在介绍定时器的使用之前,先简单介绍一下常见的定时器的实现。通常,定时器的是由一个单独的线程+一个最小堆来实现的。单独的线程基本上保证定时事件不被其他事件而阻塞,能够及时调度到,从而保证定时器的在时间上的“准确性”;用最小堆来做为核心的数据结构,主要是为了性能考虑,以时间为key,这样堆顶的元素就是最先到期的,因此每次check的时候,直接从堆顶开始check, 只到遇到第一个没到期的元素为止,这里的复杂度与在堆里的元素个数无关,可以看作是O(1)的,因此性能上还是比较有保障的。

接下来说说定时器的基本用法,通常情况下,定时器有两类主要的应用:一类是周期性的执行某个指定的动作;一类是延后特定的时间,执行指定的动作。第一类我们通常叫周期性定时器(PeriodTimer),第二类叫一次型定时器(OneshotTimer) 。 阅读全文…

分类: 程序人生 标签: ,

让你的Linux终端色彩斑斓!

2012年3月4日 没有评论

做为一名linux后台开发工程师,每天面对着只有黑白两色的linux终端,你是否曾想过,让你的终端也能五彩斑斓起来,让每天的开发生活不再只是黑白那么的单调。只要你能想到,就一定会有实现的办法。接下来,我将一步步为你接开Linux终端显示彩色的神秘面纱。
1. 先照下面的例子,在你的终端操作,来一个直观的印象。

相信细心的朋友通过对比上面的例子,应该能看出上面的例子的一些特点,我在这里就不卖关子了,基本的格式是:

1
echo "< ctrl-v >< escape >[xxmHello world< ctrl-v >< escape >[yym"

其中,xx和yy分别是各种颜色的代码,通过它们可以来控制要显示的色彩的种类。在色彩码前面有三个特殊的字符,一个是< ctrl-v >,一个是< escape >,一个是[,这些都是必须的。 阅读全文…

分类: 技术杂记 标签: , ,