
Linux
airu
这个作者很懒,什么都没留下…
展开
-
管道管道管道
Unix的管道真的是很方便,我们经常这样用: [code="shell"]$ls -l|wc -l[/code] 用于统计一个目录下的文件数。这里如果详细说起来,涉及了进程组,会话的概念。当然最显眼的就是符号 | ,这是就是管道,下面我们说说上面的这句shell如何用c语言来写。为了更能说明问题,我们把结果写入一个文件中。 [code="c"] #include #include...原创 2011-12-27 00:16:43 · 223 阅读 · 0 评论 -
初识Linux线程
Linux的线程也是曲折的,2.4内核的时候居然线程使用进程来实现。不过2.6内核我是没看到有什么诡异的了。线程是线程,进程是进程。 为什么要线程呢? 线程的切换,不需要切换进程的上下文,比如N多寄存器值的保存。所以是轻量级的。速度也更快,但是同时也带来很多问题,比如同步。 现在让我们来简单看看Linux的线程吧。 下面的程序,通过多线程,并且互斥来对一个变量累加。 [code="c...原创 2011-12-28 00:19:03 · 125 阅读 · 0 评论 -
线程队列
队列很常见,但是如果我们考虑在多线程环境中,那么可能就要注意同步互斥了。 这里使用读写锁,可以在读的时候不需要锁住整个队列。但是添加到队列就必须用互斥的锁了。 这里就介绍一下读写锁。pthread_rwlock_t lock定义一个读写锁lock,同样注意要初始化。 用 pthread_rwlock_init(&lock) 来初始化 lock。 下面来看一个列子,使用双向链表实现队列。...2011-12-28 23:24:15 · 119 阅读 · 0 评论