条件变量是一种同步机制,用于多线程编程中,当某个条件不满足时,使线程阻塞,并在条件满足时被唤醒。通常与互斥锁一起使用,以确保对共享资源的互斥访问和防止竞态条件。
condition_variable
构造函数
只支持默认构造;
不支持拷贝构造和移动构造。
成员函数
wait:阻塞当前线程,...
阅读更多
进程和程序
程序:储存在外部存储的一个可执行文件
进程:在内存中运行,处于执行期间的程序
进程和线程
进程:是操作系统资源分配的基本单位,进程之间的地址空间和资源相互独立,一个进程至少有一个线程。
线程:是处理器任务调度和执行的基本单位,同一进程的所有线程共享本进程的地址空间和资源。
...
阅读更多
互斥锁
std::mutex
C++里面的mutex类是用来进行线程同步,保护数据的,防止不同线程对同一数据同时进行处理。
std::mutex的成员函数:
构造函数,std::mutex不允许拷贝构造,也不允许移动拷贝。
lock(),调用线程将锁住该互斥量。线程调用该函数会发生下面 3 种情况:...
阅读更多
Linux下编写多线程程序需要包含头文件pthread.h
线程管理
线程id
typedef unsigned long int pthread_t;
获取自身线程id:
pthread_t pthread_self();
线程属性
// 初始化属性
int pthread_attr_init(pt...
阅读更多
RTP,Real-time Transport Protocol(实时传输协议),是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。
RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。
RTP的典型应用建立在UD...
阅读更多
RTCP,Real-time Transport Control Protocol(实时传输控制协议),是RTP协议的姊妹协议。
RTCP负责管理传输质量,在当前应用进程之间交换控制信息,提供流量控制和拥塞控制服务。
在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包...
阅读更多
自定义priority_queue的比较函数
默认的比较函数为less函数。
重载操作符
#include<queue>
#include <vector>
struct Node {
int value;
};
bool operator<(const Node &...
阅读更多
线程的创建
线程通过构建std::thread对象而启动,std::thread的构造函数:
// 默认构造
std::thread t1;
// 使用任意可调用类型构造
std::thread t2(F&& f, Args&&... args);
// 使用另外一个线程移...
阅读更多