代码改变世界

随笔分类 -  Learning by doing 系列

Python简单的多客户端聊天室程序

2012-01-06 10:28 by Haippy, 4174 阅读, 收藏, 编辑
摘要: 本文所示代码将教你如何使用Python标准库中的select.select模块实现多路复用的命令行下CS模式的聊天室程序。 阅读全文

自己动手实现自旋锁(spinlock)

2011-12-17 10:17 by Haippy, 7815 阅读, 收藏, 编辑
摘要: 大多数的并行程序都需要在底层使用锁机制进行同步,简单来讲,锁无非是一套简单的原语,它们保证程序(或进程)对某一资源的互斥访问来维持数据的一致性,如果没有锁机制作为保证,多个线程可能同时访问某一资源,假设没有精心设计的(很复杂)无锁算法保证程序正确执行,那么后果往往非常严重的。无锁算法难于使用,所以一般而言都使用锁来保证程序的一致性。 阅读全文

Lex & Flex 词法分析器实践(未完,持续更新)

2011-10-10 23:38 by Haippy, 11879 阅读, 收藏, 编辑
摘要: Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具, Lex (最早是埃里克·施密特和 Mike Lesk 制作)是许多 UNIX 系统的标准词法分析器(lexical analyzer)产生程式,而且这个工具所作的行为被详列为 POSIX 标准的一部分。 阅读全文

巧用 python 脚本控制你的C程序

2011-09-17 22:02 by Haippy, 3019 阅读, 收藏, 编辑
摘要: python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为。 作为例子,本文将用 python 和 C 语言来编写示例代码,同时也会顺便介绍一下 利用 C 语言扩展 python的方法,最后会给出完整的 C 编写 python 模块的源码。 阅读全文