unix/linux编程
文章平均质量分 78
shuishuangyu
这个作者很懒,什么都没留下…
展开
-
Posix线程同步1--互斥量(含代码实例)
互斥量:相当于锁,初始化一个互斥锁后,线程1在取得互斥锁后,在线程1释放这把互斥锁前的这段时间,其它线程(比如线程2)申请互斥锁将会阻塞,一直到线程1释放锁以后,线程2才有可能申请到锁。应用场合:多线程对同一个全局变量的修改操作上。主要函数有两个:1)申请锁int pthread_mutex_lock(pthread_mutex_t *mutex);2)释放锁int pthread_mutex_u原创 2008-03-18 15:51:00 · 734 阅读 · 0 评论 -
Posix线程同步2--条件变量(含代码实例)
条件变量:与互斥量一起使用,暂时申请不到某资源时进入条件阻塞等待,当资源具备时线程恢复运行应用场合:生产线程不断的生产资源,并通知产生资源的条件,消费线程在没有资源情况下进入条件等待,一直等到条件信号的产生主要函数有两个:1)等待条件int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)2)发送条件信号int pthr原创 2008-03-19 15:55:00 · 589 阅读 · 0 评论 -
linux进程通信--管道(pipe)(含实例代码)
管道(pipe):用于亲缘关系进程间(如父子进程,兄弟进程)的通信一个进程写管道:写入字节数小于PIPE_BUF是原子操作,写操作在管道缓冲区没有及时读走时发生阻塞。一个进程读管道:读操作在管道缓冲区没有数据时发生阻塞。主要函数:int pipe(int filedes[2]); 代码实例创建了父子进程,父进程写管道,子进程读管道。代码验证了写阻塞:子进程读一次管道就休眠1秒,父进程一次写原创 2008-03-24 09:17:00 · 2932 阅读 · 1 评论 -
linux进程通信--有名管道(FIFO)(含实例代码)
有名管道(FIFO):与管道不同,可以在没有亲缘关系的多个进程间通信。创建完FIFO,读或写FIFO的进程首先要有打开FIFO的操作:读FIFO的进程以阻塞方式读打开,如果没有其它进程写则打开操作阻塞;写FIFO的进程以阻塞方式写打开,没有其它进程读则打开操作阻塞。某进程以阻塞方式读FIFO,如果FIFO没有数据或是有数据但其它进程在读,则发生阻塞。某进程以阻塞方式写FIFO,与写管道是一原创 2008-03-24 09:19:00 · 2030 阅读 · 0 评论