自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 C++智能指针 unique_ptr shared_ptr weak_ptr

智能指针入门级介绍,浅显易通

2024-05-24 14:41:54 126 1

原创 发布订阅模式 Vs 观察者模式

综上所述,发布者-订阅者模式更注重于解耦发布者和订阅者,通过消息代理来进行消息传递;而观察者模式更注重于主题对象和观察者之间的依赖关系,主题对象状态变化时直接通知观察者。选择哪种模式取决于具体的应用场景和需求。

2024-05-13 09:38:19 227

原创 Windows下gcc -m32出错

今天要编一个windows 32bit的库文件,结果在使用gcc -m32选项的时候一直报错,上网找了一堆教程,也没有解决掉。在线安装有时候特别慢,打个包上传到百度网盘了,有需要可以自行下载。更新了一下mingw安装包,参考。

2024-02-29 23:10:02 727 2

原创 曲线半径与车速之间的关系

为了确保行车安全,设计时会根据道路的设计速度来选择一个合适的最小曲线半径,以限制车辆在曲线处的侧向加速度不超过一定的安全值。通常,这个安全值的上限在道路设计规范中会有所规定,比如不超过0.1g到0.15g(g是重力加速度,约为9.81m/s²)。此外,道路设计规范提供的曲线半径和车速之间的对应关系表或图表,可以直接用来指导设计,以满足安全、舒适和经济的需求。这意味着在一定的侧向加速度(或司机感觉到的侧向力)限制下,车辆以更高的速度通过曲线,需要一个更大的曲线半径。

2024-02-24 15:36:29 1353

原创 读写锁(pthread_rwlock)提高并发

每个读线程在读取计数器值时使用pthread_rwlock_rdlock()获取读锁,而写线程在修改计数器值时使用pthread_rwlock_wrlock()获取写锁。其核心特点在于允许多个线程同时进行读取操作,但在任何时刻只允许一个线程进行写操作,并且写操作时不允许有读操作或其他写操作同时进行。综上所述,读写锁的设计使得在读多写少的场景下,可以显著提高程序的并发性能,但它的使用和管理也比单纯的互斥锁更为复杂。:一旦有线程正在进行写操作或等待进行写操作,读线程将无法获取读锁,必须等待写操作完成。

2024-02-05 21:10:41 487 1

原创 QNX声音架构(QSA)入门指南

QNX声音架构(QSA)是QNX操作系统中用于处理音频输入和输出的高级、多功能音频框架。它提供了灵活的音频处理功能,包括音频捕获、播放、混音,以及与多种音频硬件的接口支持。QSA的设计旨在满足高性能和低延迟音频处理的需求。

2024-01-29 17:37:30 770

原创 QNX声音架构(翻译)

要重新配置音频流,您必须调用 snd_pcm_plugin_params() 或 snd_pcm_channel_params(),然后调用相应的 snd_pcm_plugin_setup() 或 snd_pcm_channel_setup() 函数。因此,请确保在写入音频数据之前,您在进行 snd_pcm_*_params() 调用后,调用 snd_pcm_*_setup() 和 snd_pcm_*_prepare() 函数。随着同时混合的音频流数量的增加,溢出的程度和频率也会增加。

2024-01-29 17:34:54 1741

原创 代码的时间复杂度

在进行算法学习的时候都会追求高效的算法,刚入门的时候可以根据最笨的方法进行算法,然后再持续优化。时,执行所需时间的增长速度。时间复杂度用大O符号表示,表示算法的。当谈论代码的时间复杂度时,我们通常关注的是算法在。

2024-01-21 11:15:16 468 1

原创 Leetcode-不重复的最长字符串

算法和数据结构什么时候学什么时候新,做过的题再刷的时候感觉还是新的。下边这道题原题链接如下。

2024-01-19 22:34:02 409 1

原创 C++的dynamic_cast

是 C++ 中的一种类型转换操作符,主要用于在运行时进行安全的类型转换。它通常用于处理多态类型,即基类和派生类之间的关系。在运行时检查指针或引用是否可以安全地转换为目标类型,如果可以,则执行转换,否则返回空指针或引用。

2024-01-14 22:59:09 2067 1

原创 Visual Studio Code C++编译

在Visual Studio Code (VSCode)中,您可以使用不同的编译器和构建工具来编译C++文件。一个常见的选择是使用Microsoft的C++扩展和MinGW-w64(适用于Windows)或GCC(适用于Linux)编译器。文件以适应您的编译器和项目要求。上述示例使用的是g++编译器,您可能需要根据您的情况进行调整。

2024-01-14 22:00:51 736 1

原创 QNX 优先级继承-解决优先级反转的智能调度策略

#QNX

2024-01-09 22:33:23 429 1

原创 数据结构-环形缓冲区 ring buffer

环形缓冲区(Circular Buffer),也称为循环缓冲区或环形队列,是一种常见的数据结构,通常用于在计算机科学和嵌入式系统中实现数据的循环存储。环形缓冲区的特点是固定大小的缓冲区,在缓冲区的尾部写入新数据时,如果到达缓冲区的末尾,则会绕回到缓冲区的开头,形成一个循环。以下是一个简单的环形缓冲区的例子,使用C语言实现。环形缓冲区的概念常常用于实现循环队列,例如,在计算机网络中,可以使用环形缓冲区来管理数据包的接收和发送。当缓冲区的尾部到达物理存储的末尾时,新的数据将从缓冲区的开头重新开始,形成循环。

2024-01-08 19:13:16 490 1

原创 如何使用C++编译DLL和SO

编译C++为动态链接库(DLL - Dynamic Link Library)或共享对象(SO - Shared Object)是将C++代码打包为可供其他程序调用的可。

2024-01-07 13:28:16 640 1

原创 pthread_create 介绍

类型,可以得到传递的结构体参数,然后在新线程中使用这些参数。这样,就可以通过结构体传递多个参数给新线程。函数是 POSIX 线程库(Pthreads)提供的函数之一,用于创建一个新的线程。的作用是创建一个新的线程,并将执行流程从调用它的地方分离出去,使得新线程能够独立执行指定的。的指针,因此可以用来传递任何类型的数据。函数用于等待新线程的结束,确保在主线程结束之前新线程已经完成。传递参数给新创建的线程。的结构体,用于封装传递给新线程的参数。新线程开始执行后,它的执行将从。创建了一个新线程,执行了。

2024-01-07 10:24:04 496 1

原创 pthread_join函数介绍

主线程可以等待其他线程完成工作,确保线程的协同工作。在等待期间,主线程可以做一些其他的工作,或者直接等待其他线程的终止。等待子线程的终止,并获取子线程的返回值。这样可以确保主线程在子线程执行完毕后再继续执行。来等待另一个线程时,调用线程将阻塞,直到指定的线程完成执行。获取目标线程的返回值,主线程可以获取到目标线程的执行结果。函数用于等待一个指定的线程终止。这个函数是多线程编程中常用的同步机制之一。在这个例子中,主线程创建了一个子线程,然后调用。下面是一个简单的示例,演示了。

2024-01-07 10:16:48 648 1

原创 QNX IPC同步消息传递 Synchronous message passing

同步消息传递在QNX Neutrino RTOS中扮演着主要的进程间通信角色。这种通信机制通过MsgSend()和的交互,有效地将不同线程和进程连接在一起,构建了一个协调有序的系统。下面我们将深入了解这一同步通信的运作机制。

2024-01-07 10:01:05 452 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除