首页
C&C++
C#语言
Java
Python
人工智能
Web前端
数据库
面试笔记
其它
软件推荐
搜索
C++ 中的并发:互斥和锁 — 第2部分
锁护罩在前面的示例中,我们直接调用了互斥锁的 and 函数。“在锁下工作”的想法是阻止其他线程对同一资源的不需要的访问。只有获得锁的线程才能解锁互斥锁,并让所有剩余的线程有机会获得锁。然而,在实践中,应不惜一切代价避免直接呼叫!想象一下,在锁下工作时,线...
4-29 9:0
191
C++ 中的并发:互斥锁和锁 — 第 1 部分
互斥实体到目前为止,我们用于在线程之间传递数据的方法都是短期的,涉及将参数(promise)从父线程传递到工作线程,然后在结果可用时(通过 future)将结果传递回父线程。promise-future 结构是一次性使用的非永久性通信通道。我们已经看到,为了避免数据争用,我们需...
4-29 8:55
184
C++ 中的并发性:消息队列--第1部分
监视器对象模式在前面的并发部分中,我们了解到数据保护是并发编程中的关键元素。在研究了几种实现此目的的方法之后,我们现在希望在这些概念的基础上设计一种在线程之间进行受控和细粒度数据交换的方法(消息队列)。实现这种构造的一个重要步骤是实现监视对象,这是一...
4-29 8:52
160
2024年最新50道C++面试问题,看看你会多少?
以下是 C++ 的前 50 个面试问题:1. 什么是 C++,它的主要功能是什么?2. 区分 C 和 C++。3. 解释面向对象编程 (OOP) 的概念及其在 C++ 中的支柱。4. C++ 中的基本数据类型有哪些?5. 描述 C++ 中堆内存分配之间的区别。6. 解释 C++ 中“const”关键字的意义。7. 什么...
4-29 8:33
205
C++ 中的并发详细介绍:条件变量
过去,我们使用的无限轮询循环没有得到最佳编程:只要程序在运行,while-loop 就会让处理器保持忙碌,不断询问是否有新数据可用。在下文中,我们将研究一种更好的方法来解决这个问题,而不会给处理器带来太大的负载。轮询循环的替代方法是让主线程阻塞并等待新数据可用...
4-29 8:10
189
你知道如何在C++ 中实现线程安全的数据结构吗?
多线程是计算机科学中一个强大的概念,它允许多个线程在单个程序中并发执行。每个线程都表示一个独立的执行流,共享相同的资源,包括内存空间。虽然多线程可以通过利用多个处理器内核来显著提高性能,但它带来了与数据安全一致性相关的挑战。对线程安全数据结构的需求在...
4-29 8:5
396
使用 CMake 和 C++ 创建可重用库详细方法和步骤
你有没有想过如何使用 CMake(强大的跨平台构建系统)创建可重用的库?如果是这样,你并不孤单。许多开发人员都面临着编写模块化和可维护代码的挑战,这些代码可以在不同的项目之间轻松共享和集成。在本指南中,我们将向您展示如何克服这一挑战并使用 CMake 创建可重用...
4-29 7:59
328
2024年C++编程不再推荐使用的功能你还在在用吗?
C++过去和现在都是一种伟大的编程语言,无论我们是否意识到这一点,我们的许多日常数据库,脚本引擎和游戏主要是使用C++编写的,并且该语言将在不久的将来继续存在。C++ 的生态系统这意味着我们将不得不在不久的将来用 C++ 编写新代码,但我们有一个选择,即传统与现代 ...
4-29 7:54
243
C++网络通信利器:使用cpp-httplib库实现轻松HTTP请求,GET、POST应有尽有!
在C++中发起HTTP请求通常借助网络库或HTTP客户端库,例如cpp-httplib。通过选择适用的库、构建请求、发送请求、处理响应,实现与服务器的通信。
1-9 8:46
1689
C++继承技巧:如何从派生类函数中优雅调用父类函数?
在C++中,通过使用虚函数和Base::语法,可以从派生类函数中调用父类函数。虚函数机制允许在派生类中重写父类函数,而Base::语法确保调用父类版本。这种灵活性使得在派生类中能够方便地重用和扩展父类函数。
1-9 8:45
281
<
1
2
3
4
5
6
7
8
>
阅读排行
C++网络通信利器:使用cpp-h...
1689
C++输出控制:std::cout线程...
1026
C++性能之辩:数组vs.std::v...
744
解析C++链接错误:未定义引...
573
掌握C++模板类:编译时检查...
631
你知道如何在C++ 中实现线程...
396
C++内存分配详解:栈、堆、...
618
高效遍历:C++中分隔字符串...
491
C++链接性详解:外部链接与...
353
C/C++函数参数声明解析:int...
570
C++并发操作解密:轻松搞定...
1577
使用 CMake 和 C++ 创建可重...
328
C++编程精要:const vs. con...
325
C++压缩解压目录只需要这个...
446
提升性能的C++奇迹:复制省...
446
Excel数据处理利器:C++中三...
440
C++类循环依赖破解:前向声...
432
实例讲解C++中如何使用文件...
4945
C++对象切片探秘:派生类对...
527
消除警告,提高代码可读性:...
968
面试必备:深入解析C++函数...
404
C++字符串魔法:用replace方...
402
C/C++ 中运用WMI接口查询系...
512
提高安全性,优雅实现拷贝与...
401
C++路径研究:两招搞定获取...
278
C++矢量操作技巧:擦除重复...
713
实例详细讲解C++11原子变量...
511
面试必备:深入解析C++引用...
397
C++模板类设计:this指针解...
502
C++数组返回指南:指针 vs. ...
503
C++线程安全:共享数据的完...
1501
C++浮点数魔法:解析float和...
389
你知道C++函数如何具有多个...
499
互联网时代json数据格式被广...
384
构建稳固基石:C++线程安全M...
383
C++回调函数精解:基础使用...
611
C++传递之道:按值传递与引...
380
C++如何在一个函数内返回不...
1406
C++共享之道:用extern实现...
702
通过C++发布一个web api服务...
370
C++动态内存分配探秘:new与...
600
C++中new、::operator new与...
480
C++ API设计:指针vs.引用,...
246
C++强制类型转换详解:四种...
699
2024年C++编程不再推荐使用...
243
C++构造函数和析构函数异常...
475
你知道C++中内存管理new和de...
362
深入解析C++中sizeof和strle...
356
解放内存管理:C++智能指针...
355
C 语言和 C++、C# 的区别在...
683