随笔分类 -  C++/C基础知识

摘要:单生产者——单消费者模型 此种场景不需要加锁,定长的可以通过读指针和写指针进行控制队列操作,变长的通过读指针、写指针、结束指针控制操作。此模型基于linux内核提供的kfifo的实现。 本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件 阅读全文
posted @ 2021-09-02 17:16 DWVictor 阅读(1568) 评论(0) 推荐(2)
摘要:C++中实现类似Java的“synchronized” 设计思路:通过区域锁和宏定义实现。 本文展示了如何synchronized在 C++ 中编写与 Java 工作方式类似的语句。这段代码的目标是制作一段如下代码,可在 C++ 中编译和执行: synchronized(myMutex) { //T 阅读全文
posted @ 2021-09-02 11:01 DWVictor 阅读(954) 评论(0) 推荐(0)
摘要:CAS机制 什么是CAS? CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。 主内存中存放的共享变量的值:V(一般情况下这个V是内存的地址值,通过这个地址可以获得内存中的值) 工作内存中共享变量的副本值,也叫预期值:A 需要将共享变量更新到的最新值:B 更新一个变量的 阅读全文
posted @ 2021-08-31 21:43 DWVictor 阅读(224) 评论(0) 推荐(0)
摘要:OpenMP + C++ functional 可以瞬间构造一个线程池 #include <iostream> #include <functional> #include <vector> using namespace std; void fun (int a, int b) { cout<< 阅读全文
posted @ 2021-08-31 20:17 DWVictor 阅读(399) 评论(0) 推荐(0)
摘要:在C++中使用openmp进行多线程编程 一、前言 多线程在实际的编程中的重要性不言而喻。对于C而言,当我们需要使用多线程时,可以使用boost::thread库或者自从C 11开始支持的std::thread,也可以使用操作系统相关的线程API,如在Linux上,可以使用pthread库。除此之外 阅读全文
posted @ 2021-08-31 20:10 DWVictor 阅读(7077) 评论(1) 推荐(3)
摘要:C++ 智能指针 shared_ptr 最近接触智能指针比较多,对智能指针的使用做下基本的总结。 shared_ptr 是C++11提供的一种智能指针类,本质上是一个类,具有构造函数和析构函数,于是能够自动释放没有指针引用的资源。 其核心实现便是计数。 每个 shared_ptr 对象在内部指向两个 阅读全文
posted @ 2021-07-19 21:02 DWVictor 阅读(435) 评论(0) 推荐(0)
摘要:find会挨个查找set,当到达set.end()时,也就是一个也没找到,返回end,即set.find(x) == set.end(),x为所查找的值 找到该数了,则返回该数的位置,所以可以用*(set.find(x))输出得到查找的该数。 阅读全文
posted @ 2020-12-07 21:59 DWVictor 阅读(3398) 评论(0) 推荐(0)
摘要:1、字符串数字之间的转换 (1)string --> char * string str("OK"); char * p = str.c_str(); (2)char * -->string char *p = "OK"; string str(p); (3)char * -->CString ch 阅读全文
posted @ 2020-12-02 11:39 DWVictor 阅读(1303) 评论(0) 推荐(0)