logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【linux学习】深入理解 Linux 进程间通信:管道的艺术与实现

本文系统介绍了Linux系统中的进程间通信机制——管道。主要内容包括:1. 管道基础概念:作为单向数据流通道,用于进程间通信,如Shell命令who | wc -l中的应用。2. 匿名管道:通过pipe()系统调用创建,仅限父子进程使用,需配合fork()和文件描述符管理实现单向通信,文中提供了完整的父子进程通信代码示例。3. 管道特性:半双工、字节流传输、进程生命周期绑定及内核同步机制等核心特点

文章图片
#linux#开发语言
C++中位图和布隆过滤器的一些面试题

在对C++的问题时,位图和布隆过滤器是可以解决实际问题的,当面对很多数据时,我们的服务器内存又很小时,我们需要进行拆分数据进行映射储存,然后进行查找,下面分享一些常见面试题和解决方案。使用位图和布隆过滤器解决实际问题,同时哈希和布隆过滤器的结合使用。

#c++#开发语言
C++中的右值引用

C++98中提出了引用的概念,引用即别名,引用变量与其引用实体公共同一块内存空间,而引用的底层是通过指针来实现的,因此使用引用,可以提高程序的可读性。右值引用的最大作用:我们要转移数据时需要进行拷贝,太消耗资源,代价很大,有时候这些对象是临时对象就是所说的“将亡值”,这些临时对象马上就要销毁了,我们能不能不复制,直接把资源拿过来,下面介绍做法。对右值引用进行介绍,右值引用最大的作用在于移动构造,减

#c++#开发语言
【C++11】C++中的线程库

函数名功能thread()构造一个线程对象,没有关联任何线程函数,即没有启动任何线程thread(fn,...)构造一个线程对象,并关联线程函数fn,args1,args2,...为线程函数的参数get_id()获取线程idjoinable()线程是否还在执行,joinable代表的是一个正在执行中的线程。join()该函数调用后会阻塞住线程,当该线程结束后,主线程继续执行detach()

#c++#开发语言
【C++进阶】特殊类的设计,从堆栈限制到单例模式的实战,代码助你理解特殊类的实际应用

本文系统讲解了C++中五种特殊类设计模式:1. 堆专属类(HeapOnly):私有化构造函数,提供静态工厂方法,禁用拷贝构造;2. 栈专属类(StackOnly):屏蔽operator new实现栈限制;3. 禁止拷贝类(CopyBan):C++11推荐使用=delete语法;4. 禁止继承类(NonInherit):C++11可用final关键字;5. 单例模式:重点分析了饿汉模式、双检查锁懒汉

文章图片
#c++#单例模式#开发语言
C++中的布隆过滤器

布隆过滤器时哈希+位图的应用,能够存储不同类型的数据,通过多个哈希来进行映射到位图上,可能存在误判,但是不存在的数据就是不存在,不可能无中生有。

#c++#开发语言
C++11第一部分:C++11的简单介绍

对列表初始化的认识,使用initializer_list进行初始化列表,方便不在进行循环初始化容器,让容器和内置类型一样可以直接初始化,对变量类型推导,是解决类型太长,太难写的情况下使用,而aotu在一定的场景下不能使用,比如对函数返回类型,要进行运行函数才能推导,会增加消耗,而decltpye不需要执行函数就可以对函数的返回值值进行推导。

#c++#开发语言
C++中的 lambda表达式

对lambda的介绍,lambda和仿函数差不多,而且不用自己生成一个类,编译器会自动生成,所以是较为方便的。

#c++#开发语言
【C++的学习】C++的异常处理

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。//服务器开发中通常使用的异常继承体系protected:int _id;// ...{};{};{};int main()try{//抛出对象都是派生类对象catch (c

#学习#c++
【C++学习】C++中的智能指针

本文介绍了C++智能指针的原理与应用。首先分析了内存泄漏的危害及分类,指出智能指针是预防内存泄漏的有效手段。重点讲解了三种智能指针:auto_ptr(管理权转移)、unique_ptr(防拷贝)和shared_ptr(引用计数),并通过代码示例说明其实现原理。特别讨论了shared_ptr的线程安全问题和循环引用问题,提出使用weak_ptr的解决方案。最后介绍了RAII思想的扩展应用,如守卫锁的

文章图片
#学习
    共 20 条
  • 1
  • 2
  • 请选择