LInux
gelandesprung
这个作者很懒,什么都没留下…
展开
-
mini2440开发板烧写镜像文件
环境:uboot烧写在nand上,从uboot启动打开kermitnand erase 0x60000 800000nand loadb 0x30008000ctrl-\send uImagecnand write 0x30008000 0x60000 300000重启一次,可以启动kernel再烧写rootfs.jffs2这个比较大,用串口比较费时间然原创 2013-11-10 09:26:42 · 261 阅读 · 0 评论 -
read-write Lock
Read-Write Lock同样是保护数据,RW锁比mutex提供更好的并发性,因为RW锁有两三种状态,读锁,写锁,未锁。非常适合保护读多写少的操作需求!数据结构pthread_rwlock_tpthread_rwlockattr_t读写锁的操作int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,con原创 2014-02-28 15:58:36 · 229 阅读 · 0 评论 -
Condition Variable
条件变量使用环境我对Condition的理解是这样的调用signal和broadcast的线程和调用wait的线程不是无差别的,他们有差别,有先后关系,比如说没有wait的线程,signal是无用的。与mutex对比就会发现使用mutex的线程之间是没有差别的,他们谁离了谁都是一样的,他们之间仅仅是争资源而已。使用mutex的进程之间的竞争关系,使用condition的线程之间是合作关原创 2014-03-03 15:30:49 · 245 阅读 · 0 评论 -
Barriers
Barriers使用场景类似的线程并行执行,比如算从1加到100,分成五个线程,每个线程算20个数的加法。Barriers可以使先算完的线程等待后面的线程。后面会用一段代码写这个例子。数据结构pthread_barrier_tpthread_barrierattr_t关键操作int pthread_barrier_init(pthread_barrier_t *原创 2014-03-03 16:43:18 · 343 阅读 · 0 评论 -
线程
线程使用情景我对线程的理解是:一段代码在执行的过程中,有部分代码片段可能会阻塞,或者耗费时间比较长,另有一部分代码片段执行的时候不受这部分耗时代码或者阻塞代码的影响,我们就把这两个代码片段变成两个线程,把本来需要浪费在等待的时候用于执行不受影响的代码,达到节约时间,提高效率的目的。随着线程概念的发展,线程的设计理念也从面向过程发展到面向对象,现在的设计代码的时候喜欢把不同的事务放到不同原创 2014-03-04 11:25:04 · 238 阅读 · 0 评论