摘要:本文所示代码将教你如何使用Python标准库中的select.select模块实现多路复用的命令行下CS模式的聊天室程序。 阅读全文
如何利用Latex绘制圣诞树
2011-12-25 11:14 by Haippy, 1758 阅读, 0 推荐, 收藏, 编辑
摘要:圣诞节到了,凑个热闹,国外的Latex牛人画的圣诞树,使用了tikz包。 阅读全文
自己动手实现读写锁(read-write lock)
2011-12-17 11:04 by Haippy, 7149 阅读, 2 推荐, 收藏, 编辑
摘要:很多时候,我们的进程并不需要改变它所访问的数据结构,它们只是以只读的方式访问某一变量或结构某字段,此时如果多个进程同时申请访问相同的数据,为了效率起见,我们可以让这些进程同时访问它们所需要的数据,而不需要进行加锁和解锁操作,自旋锁并不区分进程是读访问还是写访问,此时使用自旋锁是很不明智的,所以精心设计的读写锁便发挥了作用。 阅读全文
自己动手实现自旋锁(spinlock)
2011-12-17 10:17 by Haippy, 7889 阅读, 2 推荐, 收藏, 编辑
摘要:大多数的并行程序都需要在底层使用锁机制进行同步,简单来讲,锁无非是一套简单的原语,它们保证程序(或进程)对某一资源的互斥访问来维持数据的一致性,如果没有锁机制作为保证,多个线程可能同时访问某一资源,假设没有精心设计的(很复杂)无锁算法保证程序正确执行,那么后果往往非常严重的。无锁算法难于使用,所以一般而言都使用锁来保证程序的一致性。 阅读全文
C 语言实现动态字符串
2011-12-16 20:55 by Haippy, 8043 阅读, 1 推荐, 收藏, 编辑
摘要:在C语言中,字符串是以连续的字节流表示的,并且以 '\0' 结尾,C语言标准库中也提供了很多函数来操作这种形式的字符串,比如,求字符串长度 strlen( ),求子串strstr( ),字符串拷贝strcpy( )等等,但是,这些函数并不安全,很可能给系统或应用程序带来严重的问题,如栈溢出等,C语言字符串中并没有记录操作系统为其分配的长度,用户必须自己将字符串长度保存在其他的变量中,很明显如果操作不当就会产生错误,如臭名昭著的缓冲区溢出。 阅读全文
HBase vs. BigTable Comparison
2011-12-10 16:11 by Haippy, 494 阅读, 0 推荐, 收藏, 编辑
摘要:HBase vs. BigTable Comparison 阅读全文
一致性hash算法释义
2011-12-10 09:57 by Haippy, 23528 阅读, 15 推荐, 收藏, 编辑
摘要:一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的(参见扩展阅读[1]),设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 阅读全文
幂律分布研究简史(转载)
2011-12-05 16:38 by Haippy, 3064 阅读, 0 推荐, 收藏, 编辑
摘要:自然界与社会生活中存在各种各样性质迥异的幂律分布现象,因而对它们的研究具有广泛而深远的意义。近年来,借助于有效的物理和数学工具,及强大的计算机运算能力,科学家们对幂律分布的本质有了进一步深层次的理解。本文从统计物理学的角度,简要介绍了幂律分布的研究史以及最新的进展,并对它的形成机制及动力学影响作了一些言简意赅的阐述。 阅读全文