
多线程学习
文章平均质量分 59
Rain_ZZX
音视频码农-。- 不断学习ing
展开
-
C++多线程学习[六]: 多线程之间的同步
一、同步问题实际开发场景中有很多需要同步的情况,例如,音频和视频的同步输出、或者通讯能够第一时间同步接受处理…二、多线程同步demo可以看到cond可以阻塞等待(wait)可以通知一个线程(notify_one)也可以通知所有的线程(notify_all)等等 这里采用的通知一个线程即notify_one。#include<iostream>#include<thread>#include<mutex>#include<list>#incl原创 2024-02-05 18:06:03 · 531 阅读 · 0 评论 -
C++多线程学习[五]:RAII锁
使用局部对象来控制资源的技术,即它的生命周期由操作系统来管理,无需人工的介入。为什么要采用RAII技术呢?主要是在开发过程中资源的销毁容易忘记,容易造成死锁或内存泄露。原创 2024-02-05 16:10:24 · 712 阅读 · 0 评论 -
C++多线程学习[四]:多线程的通信和同步、互斥锁、超时锁、共享锁
*如果当前互斥锁已被其他线程占用,则 lock 函数将阻塞当前线程,直到互斥锁可用为止。假设有6个线程同时要访问同一片区域数据,有5个线程要读数据,而有一个线程要写数据,那么共享锁可以让读线程的5个线程同时进行读,然后阻塞写数据的线程。可以看到在这段代码中,本来1号线程运行完,执行unlock()后,应该其他阻塞的线程应该进入代码内,但是发现进入的依旧是1号ID的线程。超时锁可以让阻塞的线程不断尝试进入,如果超过等待时间,就会执行日志结果,可以帮助我们更好的检查线程状态,检查是否超时或者是否存在死锁。原创 2024-01-15 16:00:10 · 2420 阅读 · 0 评论 -
C++多线程学习[三]:成员函数作为线程入口
【代码】C++多线程学习[三]:成员函数作为线程入口。原创 2024-01-13 16:37:09 · 730 阅读 · 0 评论 -
C++ 多线程学习:目录
C++多线程学习(一):认识线程,创建线程-优快云博客C++多线程学习[二]:线程的传参以及传参的一些坑-优快云博客原创 2024-01-12 22:03:48 · 439 阅读 · 0 评论 -
C++多线程学习[二]:线程的传参以及传参的一些坑
首先我们知道,{}里面的变量会存在栈中,在大括号结束后,栈中的变量会销毁掉,那么线程传参的变量按理说应该找不到才是,然而答案是依旧能正常输出结果。在thread源码中,线程会单独将传入的参数拷贝一份,拷贝到列表中,再将列表中的值传入到线程句柄中。原创 2024-01-12 22:01:32 · 580 阅读 · 0 评论 -
C++多线程学习[一]:认识线程,创建线程
0、进程和线程的概念进程:进程就是运行中的程序。线程:进程中的进程,简单理解来说就是一个进程由多个线程来执行程序(线程的数量与CPU的核数有关)。就像上面例子一样视频画面的展示,音频的播放,字幕的显示都是同步进行的(并行),线程负责进程的分工。如果进程只有一个线程的话(串行),那么对于功能的实现不仅运行效率低,而且代码十分复杂。1、创建一个线程1)std::thread: 创建一个线程,其中有三个重载,这里是直接将函数传进去,t线程来执行函数的过程。2)join(): 当我们开辟一个线程时,原创 2023-12-25 00:22:14 · 366 阅读 · 1 评论