关闭

CPP开发者

所属频道 单片机 公众号精选
  • 不会 PS 也能用,这个开源流程图绘制工具支持 100 多种自定义图形

    【导语】:开源的在线流程图绘制工具。简介Wireflow是一个免费的、开源的在线流程图绘制工具,用于创建漂亮的流程图,无需Photoshop技能。支持使用100多种自定义图形、可进行多人协作、权限分配、实时聊天等功能,并拥有丰富的功能组件库。Wireflow的诞生是为了在项目规划...

    单片机
    2021-09-03
  • 手写线程池 - C 语言版

    ↓推荐关注↓1.线程池原理我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可...

    单片机
    2021-10-25
  • 深入理解 Linux的 I/O 系统

    ↓推荐关注↓传统的SystemCallI/O在Linux系统中,传统的访问方式是通过write()和read()两个系统调用实现的,通过read()函数读取文件到到缓存区中,然后通过write()方法把缓存中的数据输出到网络端口。read(file_fd, tmp_buf, le...

    单片机
    2021-11-15
    I/O
  • 你真的理解内存分配吗?

    内存是计算机中必不可少的资源,因为CPU只能直接读取内存中的数据,所以当CPU需要读取外部设备(如硬盘)的数据时,必须先把数据加载到内存中。我们来看看可爱的内存长什么样子的吧,如图1所示:一、内存申请通常使用高级语言(如Go、Java或Python等)都不需要自己管理内存(因为有垃圾回收机制),但C/C程序员就经常要与内存打交道。当我们使用C/C编写程序时,如果需要使用内存,就必须先调用malloc函数来申请一块内存。但是,malloc真的是申请了内存吗?我们通过下面例子来观察malloc到底是不是真的申请了内存:1#include 23int main(int argc, char cons...

    单片机
    2021-09-29
  • Windows 内存泄露分析之 DebugDialog

    Windows中内存泄露的文章已经写过两篇>"data-itemshowtype="11"tab="innerlink"data-linktype="2">和>"data-itemshowtype="11"tab="innerlink"data-linktype="2">。如果有...

  • 一文讲清楚补码的本质

    在计算机中,所有的数字都是以二进制的形式表示的,即均为0和1组成的各种编码,数字的表示形式可以划分成原码,反码和补码如何表示原码、反码、补码如果没有特殊说明,下面的介绍都是以4位二进制为例的原码为了区分正数和负数,计算机中将二进制的最高位(bit)规定为符号位,它等于0时表示正数...

    单片机
    2021-11-29
  • C 20 新特性的小细节

    之前整理过一篇C20新特性的文章全网首发!!C20新特性全在这一张图里了,里面提到过latch、barrier和semaphore,但是没有详细介绍过三者的作用和区别,这里详细介绍下。latch这个可能大多数人都有所了解,这就是我们经常会用到的CountDownLatch。用于使...

    单片机
    2021-11-08
  • C 20 新增两个 const 相关的关键字后,你能分清楚这四个关键字吗?

    C20新增了两个const相关的关键字,于是当前存在四个相似的关键字:const,constexpr,consteval和constinit。接下来分别来进行讨论。第一,经过const修饰的变量具有只读属性,并且初始化发生于运行期。也就是说,若一个变量定义之后不允许被修改,就应该...

    单片机
    2021-08-19
  • 如何理解互斥锁、条件变量、读写锁以及自旋锁?

    锁是一个常见的同步概念,我们都听说过加锁(lock)或者解锁(unlock),当然学术一点的说法是获取(acquire)和释放(release)。恰好pthread包含这几种锁的API,而C11只包含其中的部分。接下来我主要通过pthread的API来展开本文。mutex(互斥量...

    单片机
    2021-10-28
  • 关于 std::set/std::map 的几个为什么

    ↓推荐关注↓std::set/std::map(以下用std::map代表)是常用的关联式容器,也是ADT(抽象数据类型)。也就是说,其接口(不是OO意义下的interface)不仅规定了操作的功能,还规定了操作的复杂度(代价/cost)。例如set::insert(iterat...

    单片机
    2021-10-11
    se
  • 网络设备的 38 个知识点

    网络其实很简单,就是一堆设备连接在一起,然后在上面跑各种网络协议,实现设备之间的网络互通。其中第一步便是把所有设备按照一定的规则连接起来。这些设备可能是路由器、交换机、防火墙等网络设备,也可能是服务器、电脑、手机等需要接入网络的设备。为了完成各种设备的连接需求,会用到网络物理层的...

    单片机
    2021-11-15
  • 百度 C  工程师的那些极限优化(并发篇)

    导读:对于工程经验比较丰富的同学,并发应该也并不是陌生的概念了,但是每个人所理解的并发问题,却又往往并不统一,本文系统梳理了百度C工程师在进行并发优化时所作的工作。一、背景简单回顾一下,一个程序的性能构成要件大概有三个,即算法复杂度、IO开销和并发能力。由于现代计算机体系结构复杂...

    单片机
    2021-09-06
  • 为什么服务端程序都需要先 listen 一下?

    大家都知道,在创建一个服务器程序的时候,需要先listen一下,然后才能接收客户端的请求。例如下面的这段代码我们再熟悉不过了。int main(int argc, char const *argv[]){ int fd = socket(AF_INET, SOCK_STREAM,...

    单片机
    2021-10-11
  • 一个内核网络漏洞详解:容器逃逸

    ↓推荐关注↓CVE-2021-22555:一个影响2006年(Linuxkernelv2.6.19-rc1发布)至今(Linuxkernelv5.12-rc8)的所有Linux内核版本的漏洞,可导致本地提权与容器逃逸;该漏洞是个内核级漏洞,跟Linux的发行版本没有关系,也就是说...

    单片机
    2021-09-03
  • Linux 系统结构详解

    ↓推荐关注↓Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。一、linux内核内核是操作系统的核心,具有很多最基本功能,它负责...

    单片机
    2021-08-19