C++并发编程 4:条件变量

条件变量是一种同步机制,用于多线程编程中,当某个条件不满足时,使线程阻塞,并在条件满足时被唤醒。通常与互斥锁一起使用,以确保对共享资源的互斥访问和防止竞态条件。 condition_variable 构造函数 只支持默认构造; 不支持拷贝构造和移动构造。 成员函数 wait:阻塞当前线程,...

阅读更多

Linux 进程管理

进程和程序 程序:储存在外部存储的一个可执行文件 进程:在内存中运行,处于执行期间的程序 进程和线程 进程:是操作系统资源分配的基本单位,进程之间的地址空间和资源相互独立,一个进程至少有一个线程。 线程:是处理器任务调度和执行的基本单位,同一进程的所有线程共享本进程的地址空间和资源。 ...

阅读更多

C++并发编程 3:互斥锁

互斥锁 std::mutex C++里面的mutex类是用来进行线程同步,保护数据的,防止不同线程对同一数据同时进行处理。 std::mutex的成员函数: 构造函数,std::mutex不允许拷贝构造,也不允许移动拷贝。 lock(),调用线程将锁住该互斥量。线程调用该函数会发生下面 3 种情况:...

阅读更多

pthread用法总结

Linux下编写多线程程序需要包含头文件pthread.h 线程管理 线程id typedef unsigned long int pthread_t; 获取自身线程id: pthread_t pthread_self(); 线程属性 // 初始化属性 int pthread_attr_init(pt...

阅读更多

RTP协议学习

RTP,Real-time Transport Protocol(实时传输协议),是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。 RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。 RTP的典型应用建立在UD...

阅读更多

RTCP协议学习

RTCP,Real-time Transport Control Protocol(实时传输控制协议),是RTP协议的姊妹协议。 RTCP负责管理传输质量,在当前应用进程之间交换控制信息,提供流量控制和拥塞控制服务。 在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包...

阅读更多

priority_queue核心总结

自定义priority_queue的比较函数 默认的比较函数为less函数。 重载操作符 #include<queue> #include <vector> struct Node { int value; }; bool operator<(const Node &...

阅读更多

C++并发编程 2:线程管理

线程的创建 线程通过构建std::thread对象而启动,std::thread的构造函数: // 默认构造 std::thread t1; // 使用任意可调用类型构造 std::thread t2(F&& f, Args&&... args); // 使用另外一个线程移...

阅读更多