Linux: 多线程编程
北雨南萍
长期专注于实时音视频通信技术、音视频处理技术,包括基于webrtc的音视频通信解决方案,基于ffmpeg的媒体处理解决方案。
展开
-
多线程编程: 条件变量
条件变量 条件变量是利用线程间共享的全局变量进行同步的一种机制, 主要包括两个动作: 一个线程等待"条件变量的条件成立"而挂起; 另一个线程使"条件成立"(给出条件成立信号). 为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 1. 创建和注销 条件变量和互斥锁一样,都有静态和动态两种创建方式, 静态方式使用PTHREAD_COND_INITI原创 2013-02-24 22:39:43 · 943 阅读 · 0 评论 -
linux多线程编程(C):互斥量实现的线程安全队列
用互斥量实现的线程安全循环队列。 只是一个示例实现,不大能用于实际编程。 因为当真正多线程时,会因为资源竞争而等待, 导致队列的效率极低。 更有效的方式是使用信号量。 更多的不说了,直接看代码吧。 cir_queue.h /* * \File * cir_queue.h * \Brief * circular queue */ #ifndef原创 2013-02-24 22:43:07 · 1743 阅读 · 1 评论 -
POSIX线程之二. 线程同步,属性和多线程
一、线程同步 线程同步的两种基本方法: A. 信号量 它的作用如同看守一段代码的看门人。 控制一组相同对象的访问时, 比如从5条可用的电话线中分配一条给某个线程的情况, 就更适合计算信号量。 最简单的信号量--二进制信号量,它只有0和1两种取值; 更通用的信号量--计数信号量,它有更大的取值范围。 B. 互斥量 它的作原创 2013-02-24 22:44:16 · 867 阅读 · 0 评论 -
linux多线程编程(C):信号量实现的线程安全队列
用信号量实现的线程安全队列。 简单有用的示例程序, 比起互斥量的实现在多线程时效率更好。 cir_queue.h /* * \File * cir_queue.h * \Brief * circular queue */ #ifndef __CIR_QUEUE_H__ #define __CIR_QUEUE_H__ #define QUE_原创 2013-02-24 22:41:18 · 2844 阅读 · 0 评论 -
POSIX线程之一.简介
一、什么是线程 在一个程序中的多个执行路线就叫做线程(thread)。 更准确的定义是: 线程是一个进程内部的一个控制序列。 事实上,所有的进程都至少有一个执行线程。 创建新进程的fork系统调用与创建新线程的区别: 当进程执行fork调用时, 将创建出该进程的一份新副本。 这个新进程拥有自己的变量和自己的PID, 它的时间调度也是独立的,原创 2013-02-24 22:45:03 · 746 阅读 · 0 评论