C++
wulei_rita
知识搬运工
展开
-
Linux多线程服务端编程:使用muduo C++网络库》阅读笔记)(1)
《Linux多线程服务端编程:使用muduo C++网络库》阅读笔记线程安全的的对象生命期管理线程安全的的对象生命期管理一、线程安全的的对象生命期管理。1、什么叫线程安全的类?一个线程安全的class需要满足:多个线程同时访问的时候,无论操作系统如何调度这些线程,其表现出正确的行为;并且调用端不需要额外的同步或协调动作。由此可知,标准库中的大多数class都是不是线程安全的,比如string,vector,map。都需要外部加锁才能保证安全。2、互斥锁的可重入和不可重入是什么意思?可重入锁又称原创 2021-02-25 18:06:58 · 459 阅读 · 0 评论 -
C++11多线程练习
C++11多线程练习3个进程循环打印数字3个进程循环打印数字编写一个程序,开启3个线程,每个线程轮流打印1-100,A打印1,B打印2,C打印3,A打印4。要求输出结果必须按ABC打印的顺序显示;1,2,3,4,5…int prinfNumFlag = 0;std::mutex mu;std::condition_variable con;void PrintNum(int flag){ int i = flag+1; while (i <= 100) { std::uniq原创 2021-02-24 15:29:07 · 342 阅读 · 0 评论 -
C++11多线程练习 ——生产者与消费者
C++11多线程联系 ——生产者与消费者生产者与消费者问题生产者与消费者问题生产者与消费者问题:所有生产者和消费者都是异步方式运行的,但它们必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未被取走的缓冲区中投放产品。struct Repository{ struct Repository(int product_num, int con_num, int pro_num) :products_num(product_num) , consumer_原创 2021-02-24 15:23:01 · 384 阅读 · 0 评论 -
工厂模式&单例模式
分享一下工作遇到的工厂模式和单例模式结合使用的一个实现。各种类型的产品的创建:Creator创建各种类型的产品,每种产品使用不同类型的 mananger。CCreatorImp继承CCreator,管理一个内存池,负责真实的创建和回收工作。使用模板T。CFactory有一个单例。RegisterCreator创建m_creator_map,m_creator_map维护了不同模板实...原创 2020-04-23 11:41:21 · 289 阅读 · 0 评论 -
观察者模式
观察者模式今天总结一下在工作遇到的观察者模式的实现方式。谈谈自己的理解观察者模式又叫做发布-订阅模式。当一个事件发生需要通知给别的实体的时候,就可以使用观察模式来实现。这里需要被通知的实体就叫做观察者。类图说明observer:是观察者基类,里面的handle函数用来实现收到通知之后要做的处理。observer1和observer2是具体的观察者,需要根据实际情况,重写handle。...原创 2020-04-22 16:14:22 · 138 阅读 · 0 评论 -
C++11多线程编程
C++11多线程变成多进程与多线程C++11中的并发和多线程初试线程启动一个进程线程结束多进程与多线程临界区:多个线程都可能访问到但不能同时访问的代码。互斥量:可以处于加锁和解锁两种状态之间的变量。C++11中的并发和多线程在C++11之前,只能使用平台提供的多线程方案,这对于移植是很不方便的,但在C++11中提供了线程库。包含线程相关的类和函数。包含原子相关的类和操作函数包含互斥...原创 2019-02-24 14:17:21 · 187 阅读 · 0 评论 -
C++11中新增的容器
C++11中新增的容器arrayforward_listunordered_map,unordered_set,unordered_multimap,unordered_multiset元组Tuplearray介于数组和vector之间,比vector高效,vector实在堆空间上,array是在栈上。#include <iostream>#include <array...原创 2019-02-18 22:31:31 · 890 阅读 · 0 评论 -
C++11中的lambda表达式
C++11中的lambda表达式一个例子了解lambda表达式的作用表达式的书写格式关于捕获列表C++11中引入了lambda表达,这种表达式看似高深莫测,其实在很多高级语言,比如python中早就有过。下面来粗浅的介绍一下lambda表达一个例子了解lambda表达式的作用在C++程序中,我们经常会用到一些库函数,比如sort;下面是使用sort的常用方式:#include &lt;io...原创 2019-02-18 14:07:07 · 286 阅读 · 0 评论 -
C++11中的智能指针
C++11中的智能指针理解智能指针shared_ptr基本使用unique_ptrweak_ptr理解智能指针在C++的程序设计中,经常需要在堆空间上进行内存的申请和释放,为了方便,C++11引出了智能指针,更好的管理堆内存,避免一些儿二次释放空间和未释放空间的情况。这种智能指针是在栈空间存放的。智能指针功能形同指针,但是本质是一个对象。有三种智能指针:shared_ptr,unique...原创 2019-02-17 18:30:41 · 183 阅读 · 0 评论 -
最近遇到的面试题
最近遇到的面试题C++方向题目最近处于求职状态,总结一下最近遇到的面试题吧,在此就不详细说是哪儿些公司了。题目1、对于函数声明:void test(int a,int b=7,char *c=&quot; * “),下面的函数调用中,不合法的是:A、test(0,0,0) B、test(1) C、test(5,‘8’) D、test(6,”#&quot;)2、一个栈的入栈序列是ABCDE,则其出栈序列不可能...原创 2019-02-21 21:01:06 · 291 阅读 · 0 评论