
C++ 实现多线程生产者消费者模式
<blockquote> <p>之前介绍过 <a href="/notes/study/algorithm/queue/message-queue/message-queue/#%E7%94%9F%E4%BA%A7%E8%80%85%E3%80%81%E6%B6%88%E8%B4%B9%E8%80%85%E6%A8%A1%E5%BC%8F...
<blockquote> <p>之前介绍过 <a href="/notes/study/algorithm/queue/message-queue/message-queue/#%E7%94%9F%E4%BA%A7%E8%80%85%E3%80%81%E6%B6%88%E8%B4%B9%E8%80%85%E6%A8%A1%E5%BC%8F...
> 多线程编程时需要考虑多线程竞争资源可能出现的问题,加锁是一种常用的解决方案。 ### 简介 {#简介} > 锁的本质属性是为事物提供"**访问保护**",例如:大门上的锁,是为了保护房子免于不速之客的到访;自行车的锁,是为了保护自行车只有owner才可以使用;保险柜上的锁,是为了保护里面的合同和金钱等重要东西...... 并发编程中经常...
> C++ 知识点记录。 ### 左值(Lvalues)和右值(Rvalues) {#左值(Lvalues)和右值(Rvalues)} C++ 中有两种类型的表达式: * **左值(lvalue):** 指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。 * **右值(rvalue):** 术语右值(rvalue)指的是存储在内...
<blockquote> <p>本文记录错误 <code>GLIBCXX_3.4.30 not found</code> 的解决方案。</p> </blockquote> <h3>错误信息 {#错误信息}</h3> <p>调用 ros2 相关库时报错</p> ...
<blockquote> <p>C++ 中计时是度量系统性能的常用方法,本文记录 C++ 常用计时方法。</p> </blockquote> <h3>time.h {#time-h}</h3> <p><code>time.h</code> 是最常用的 C++ 计时头文件,...
<blockquote> <p>C++ 工程中可能会用到系统信息,本文记录获取方法。</p> </blockquote> <h3>获取方法 {#获取方法}</h3> <p>使用 <code>GetSystemInfo</code> 函数获得系统信息</p> &...
<blockquote> <p>Eigen是可以用来进行<code>线性代数、矩阵、向量操作等运算的C++库</code>,它里面包含了很多算法。。</p> </blockquote> <h3>简介 {#简介}</h3> <ul> <li> <p>...
<blockquote> <p><code>Taskflow</code> 可以帮助您在现代 C + + 中快速编写并行和异构的任务程序 。</p> </blockquote> <h3>简介 {#简介}</h3> <ul> <li><code>Ta...
<blockquote> <p>线程也叫轻量级进程,通常一个进程包含若干个线程。线程可以利用进程所拥有的资源。 本文记录 C++ 操作线程的方法。</p> </blockquote> <h3>并发 {#并发}</h3> <p>两个或者多个独立的活动同时进行的现象称为并发。并发可以简单的认为,可以...
<blockquote> <p>Halcon 中的图像数据结构为 <code>HImage</code>, OpenCV 中的图像为 <code>Mat</code>,使用中经常需要相互转换的情况,本文记录转换方式。</p> </blockquote> <h3>转换规则 ...