Linux mobile development & HTML5 Games/App

主要致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计方法和软件优化等方面....

系统程序员成长计划-并发(五)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 无锁(lock-free)数据结构提到并行计算通常都会想到加锁,事实却并非如此,大多数并发是不需要加锁的。比如在不同电脑上运行的代码编辑器,两者并发运行不需要加锁。在一台电脑上同...

2008-12-31 07:57:00

阅读数 5382

评论数 6

系统程序员成长计划-并发(四)(下)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 读写锁读写锁在加锁时,要区分是为了读而加锁还是为了写而加锁,所以和递归锁不同的是,它无法兼容Locker接口了。不过为了做到不依赖于特定平台,我们可以利用Locker的接口来抽象锁的实...

2008-12-30 07:25:00

阅读数 3723

评论数 3

系统程序员成长计划-并发(四)(上)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 读写锁在前面的实现中,像dlist_length这类的查询函数也要加锁,那样才能保证在查询过程中对象的状态不会被其它线程所改变。加锁阻止了其它线程修改对象,也阻止其它线程查询对象...

2008-12-29 07:46:00

阅读数 3188

评论数 0

用bfd显示ARM共享库的依赖关系

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 PC上可以用ldd显示共享库的依赖关系,但它不能显示交叉编译出来的共享库。要显示交叉编译的共享库,通常做的法是在目标板上用/lib/ld-linux.so.2–list来显示。那...

2008-12-24 07:31:00

阅读数 3434

评论数 0

系统程序员成长计划-并发(三)(下)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 嵌套锁与装饰模式嵌套锁的实现算法加锁:  o如果没有任何线程加锁,就直接加锁,并且记录下当前线程的ID。  o如果是当前线程加过锁了,就不用加锁了,只是将加锁的计数增加一。  o...

2008-12-23 07:43:00

阅读数 3613

评论数 3

gdbserver调试共享库(终结版)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 我已经写过两篇关于gdbserver调试共享库的BLOG了:第一篇解决了调试共享库的难题,让调试共享库成为可能,但是使用起来很麻烦。第二篇做了点改进,通过一个脚本文件计算偏移量,...

2008-12-22 07:26:00

阅读数 4614

评论数 0

系统程序员成长计划-并发(三)(上)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 嵌套锁与装饰模式在生产者-消费者的练习中,当由双向链表的实现者负责加锁时,一般都会遇到莫名其妙的死锁问题。有的读者可能已经查出来了原因是嵌套的加锁。比如在dlist_insert...

2008-12-19 07:54:00

阅读数 3154

评论数 0

系统程序员成长计划-并发(二)(下)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 面对这个需求,一些初学者可能有点蒙了。以前在学校的时候,对于课本后面的练习,我总是信心百倍,原因很简单,我确信这些练习不管它的出现方式有多么不同,但总是与前面学过的知识有关。记得...

2008-12-18 07:23:00

阅读数 4402

评论数 2

系统程序员成长计划-并发(二)(上)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 在生产者-消费者的练习中,大部分人选择了由调用者来加锁:作为生产者,往双向链表里插入数据时,先加锁,插入数据,然后解锁。作为消费者,从双向链表里取数据时,先加锁,删除数据,然后解...

2008-12-17 07:13:00

阅读数 4315

评论数 0

系统程序员成长计划-并发(一)(下)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 Linux下的多线程编程使用pthread(POSIXThread)函数库,使用时包含头文件pthread.h,链接共享库libpthread.so。这里顺便说一下gcc链接共享...

2008-12-16 07:45:00

阅读数 5229

评论数 0

系统程序员成长计划-并发(一)(上)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 这几年并发技术受到前所未有的关注:CPU进入多核时代,连手机芯片都使用三核的CPU(AP+BP+DSP集成到一颗芯片)了。天生具有并发能力的语言ErLang逐渐成为热点。网格和云...

2008-12-15 07:47:00

阅读数 6060

评论数 1

系统程序员成长计划-写得又快又好的秘诀(六)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 Save your work“Ernst和Young所在的小组决定使用正规的开发理论—他们常用削减法,分阶段进行开发并具有中途交付能力。他们的步骤包括细致的分析和设计—正如本章描...

2008-12-12 07:22:00

阅读数 6672

评论数 0

系统程序员成长计划-写得又快又好的秘诀(五)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 自动测试手工测试比没有测试强一点,但是它存在的问题让它很难在实践中应用:手工输入数据的过程单调乏味,很难长期坚持。每次都要重新输入数据,浪费大量时间。测试用例不能累积,测试往往不...

2008-12-10 07:37:00

阅读数 5835

评论数 2

KJAVA虚拟机Hack笔记-用GTK+实现绘图操作

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 绘图操作是在mutableimage上进行的,也就是画在GdkPixmap上的,由于GdkPixmap没有画圆和椭圆的函数,我选择用cairo来实现。大部分函数的实现很直观,调用...

2008-12-09 07:24:00

阅读数 2223

评论数 0

系统程序员成长计划-写得又快又好的秘诀(四)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 避免常见错误在C语言中,内存错误是最为人诟病的。这些错误让项目延期或者被取消,引发无数的安全问题,甚至出现人命关天的灾难。抛开这些大道理不谈,它们确实浪费了我们大量时间,这些错误...

2008-12-08 07:32:00

阅读数 6299

评论数 2

系统程序员成长计划-写得又快又好的秘诀(三)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 代码阅读法软件工程实践已经证明Code Review是提高代码质量最有效的手段之一,极限编程(XP)更是把CodeReview推向极致,形成著名的结对编程工作方式,两个程序员在一...

2008-12-05 07:42:00

阅读数 5319

评论数 0

KJAVA虚拟机Hack笔记-实现mutable image

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 mutableimage在这里的意思是说可以在上面进行绘制操作的图片,它有点像VC中的DC,可以在上面贴图或者画直线填充矩形等等。在GTK+中实现的话,自然就用GdkPixmap...

2008-12-04 07:56:00

阅读数 2043

评论数 0

系统程序员成长计划-写得又快又好的秘诀(二)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 1.好与快的关系几年前和一个朋友聊天时,他抱怨他的上司说,要我写得好又要写快,那怎么可能呢?我当时一愣,反问到,写不好怎么可能写得快?他也一愣。传统观点认为在功能、成本(人*时间...

2008-12-03 07:22:00

阅读数 6433

评论数 2

KJAVA虚拟机Hack笔记-实现immutableimage

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 immutable image在这里的意思是说不能在上面进行绘制操作的图片,比如画直线和填充矩形等等。immutable image实际上就是图片在内存里面的表示,有点像VC中的...

2008-12-02 07:54:00

阅读数 2024

评论数 0

系统程序员成长计划-写得又快又好的秘诀(一)

转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 “快”是指开发效率高,“好”是指软件质量高。呵呵,写得又快又好的人就是高手了。记得这是林锐博士下的定义,读他那篇著名的《C/C++高质量编程》时,我还是个初学者,印象特别深。我现...

2008-12-01 07:27:00

阅读数 4894

评论数 0

提示
确定要删除当前文章?
取消 删除