hututu_404
码龄11年
关注
提问 私信
  • 博客:585,932
    社区:1
    585,933
    总访问量
  • 27
    原创
  • 764,275
    排名
  • 152
    粉丝
  • 1
    铁粉

个人简介:Waiting Here~~~~~~~

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2013-12-16
博客简介:

胡图图

博客描述:
oh Not Find
查看详细资料
个人成就
  • 获得473次点赞
  • 内容获得66次评论
  • 获得2,007次收藏
  • 代码片获得670次分享
创作历程
  • 11篇
    2022年
  • 34篇
    2021年
  • 38篇
    2020年
  • 17篇
    2018年
  • 17篇
    2017年
  • 27篇
    2016年
  • 2篇
    2015年
成就勋章
TA的专栏
  • 无人驾驶
    6篇
  • coding
    57篇
  • 硬件
    28篇
  • 软件应用
    10篇
  • 通信
    5篇
  • 系统
    47篇
兴趣领域 设置
  • 人工智能
    机器学习
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Linux内存管理(二):PTMalloc

1. ptmalloc简介2. 内存管理数据结构3. 内存分配4. 内存回收5. 配置选项6. 注意事项1. ptmalloc简介 Linux 中 malloc 的早期版本是由 Doug Lea 实现的,它有一个重要问题就是在并行处理时 多个线程共享进程的内存空间,各线程可能并发请求内存,在这种情况下应该如何保证分配 和回收的正确和高效。Wolfram Gloger 在 Doug Lea 的基础上改进使得 Glibc 的 malloc 可以支 持多线程——ptmalloc,在..
转载
发布博客 2022.07.29 ·
784 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++中struct和class

在C++中我们可以看到struct和class的区别并不是很大,两者之间有很大的相似性。那么为什么还要保留struct,这是因为C++是向下兼容的,因此C++中保留了很多C的东西。一.首先看一下C中struct1.struct的定义struct A{ int a; int b; //成员列表};注意:因为struct是一种数据类型,那么就肯定不能定义函数,所以在面向c的过程中,struct不能包含任何函数。否则编译器会报错面向过程的编程认为,数据和数据......
转载
发布博客 2022.07.29 ·
721 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

P问题、NP问题、NP完全问题和NP难问题

P问题、NP问题、NP完全问题和NP难问题
转载
发布博客 2022.07.29 ·
519 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Linux中的进程栈和线程栈

Linux中的进程栈和线程栈
转载
发布博客 2022.04.19 ·
2015 阅读 ·
0 点赞 ·
2 评论 ·
18 收藏

IO设计模式之Reactor和Proactor

前言上面文章中,我们提到不同的操作系统实现的io策略可能不一样,即使是同一个操作系统也可能存在多重io策略,常见如linux上的select,poll,epoll,面对这么多不同类型的io接口,这里需要一层抽象api来完成,所以就演变出来两种高性能的io的设计模式,分别是Reactor(同步IO)和Proactor(异步IO)。一般情况下,I/O 复用机制需要事件分享器(event demultiplexor)。 事件分离器的作用,即将那些读写事件源分发给各读写事件的处理者,就像送快递的小哥,拉着一
转载
发布博客 2022.03.29 ·
345 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

理解IO模型

前言在谈到IO模型之前,我们先来了解下Liunx里面的几个概念:User space(用户空间)和 Kernel space(内核空间)。Linux里面这么设计的目的主要是为了安全,即使用户空间崩溃了,内核也不受影响。所以在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。此外还要理解阻塞,非阻塞,同步,异步这几个概念,这里不再详细介绍,我之前的文章中非常详细的介绍过。说下目前
转载
发布博客 2022.03.29 ·
166 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

守护进程概念:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp,samba,nfs等相关服务。UNIX的守护进程一般都命名为*d的形式,如httpd,telnetd等等。生命周期:守护进程会长时间运行,常常在系统启动时就开始运行,直到系统关闭时才终止。守护进程不依赖于终端从终端开始运行的进程都会依附于这个终端,这个终端称为
转载
发布博客 2022.03.17 ·
640 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

浅析长度为0的数组

Part1转自:浅析长度为0的数组 - 拾月彷徨的个人空间 - OSCHINA - 中文开源技术交流社区 长度为0的数组在标准c和c++中是不允许的,如果使用长度为0的数组,编译时会产生错误,提示数组长度不能为0。但在GNUc中,这种用法却是合法的。它的最典型的用法就是位于数组中的最后一项,如上面所示,这样做主要是为了方便内存缓冲区的管理。如果你将上面的长度为0的数组换为指针,那么在分配内存时,需采用两步:首先,需为结构体分配一块内存空间;其次再为结构体中的成员变量分配内存空间。这样两次分...
转载
发布博客 2022.03.12 ·
1626 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

类Unix系统中,fd指的啥?

一、文件描述符(File Descriptor)简介socket的fd指什么?fd 是(file descriptor)即文件描述符,这种一般是BSD Socket的用法,用在Unix/Linux系统上。fd全称是file descriptor,是进程独有的文件描述符表的索引。维基百科上介绍:file descriptors index into a per-process file descriptor table maintained by the kernel, that in tur
转载
发布博客 2022.03.11 ·
869 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Linux进程优先级设置简介

在配合开发调试过程中,发现进程因使用基于FIFO的实时优先级,而另一个与之交互的进程是使用普通调度的优先级,两个进程是互相通信的,它们在工作一段时间后都不能正常工作。初步分析为进程优先级的设定问题,分析问题过程中查找了一些资料,以加强自己的理解。Linux进程调度的三种策略(1)、SCHED_OTHER,分时调度策略(2)、SCHED_FIFO,实时调度策略,先到先服务(3)、SCHED_RR,实时调度策略,时间片轮转由于涉及相关内容比较多,很难讲的清楚,关于进程调度更详细的内容建议读Linux内
转载
发布博客 2022.03.04 ·
4018 阅读 ·
4 点赞 ·
1 评论 ·
11 收藏

进程优先级详解(prio、static_prio、normal_prio、rt_priority)

进程优先级详解(prio、static_prio、normal_prio、rt_priority)
转载
发布博客 2022.03.04 ·
3873 阅读 ·
2 点赞 ·
3 评论 ·
8 收藏

函数重载,隐藏,重写

1.函数重载(Function Overload)1.1定义C++规定在同一作用域中,同名函数的形式参数(指参数的个数、类型或者顺序)不同时,构成函数重载。1.2用法比如,要从两个变量中返回其中较大的一个值,可以编写如下两个构成重载的函数。int max(int a,int b){ return a>b?a:b;};double max(double a,double b){ return a>b?a:b;}1.3注意事项(1)函数返回值类型
转载
发布博客 2021.10.20 ·
636 阅读 ·
1 点赞 ·
1 评论 ·
7 收藏

Linux 命令行快捷键

涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。常用ctrl+左右键:在单词之间跳转 ctrl+a:跳到本行的行首 ctrl+e:跳到页尾 Ctrl+u:删除当前光标前面的文字 (还有剪切功能) ctrl+k:删除当前光标后面的文字(还有剪切功能) Ctrl+L:进行清屏操作 Ctrl+y:粘贴Ctrl+u或ctrl+k剪切的内容 Ctrl+w:删除光标前面的单词的字符 Alt – d :由光标位置开始,.
转载
发布博客 2021.09.27 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

为什么栈要比堆速度要快

大部分开发人员都知道栈和堆的区别, 网上搜索也有一大堆, 但是, 具体解释栈和堆的速度差异, 找到的信息却是寥寥无几, 而且, 也都比较混乱. 在这里, 就我所知的情况, 大致描述一下栈为什么要比堆快的原因.首先, 栈是由CPU提供指令支持的, 在指令的处理速度上, 对栈数据进行处理的速度自然要优于由操作系统支持的堆数据.其次,栈是在一级缓存中做缓存的, 而堆则是在二级缓存中, 两者在硬件性能上差异巨大.再者,栈是本着LIFO原则的存储机制, 对栈数据的定位相对比较快速, 而堆则是随机分配...
转载
发布博客 2021.09.27 ·
1186 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

Linux 进程、线程、文件描述符的底层原理

Linux 进程、线程、文件描述符的底层原理说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案: 在 Linux 系统中,进程和线程几乎没有区别 。Linux 中的进程其实就是一个数据结构,顺带可以理解文件描述符、重定向、管道命令的底层工作原理,最后我们从操作系统的角度看看为什么说线程和进程基本没有区别。一、进程是什么首先,抽象地来说,我们的计算机就是这个东西:这个大的矩形表示计算机的内存空间,其中的小矩形代表进程,左下角的圆形表示磁盘,右下角的图.
转载
发布博客 2021.09.22 ·
197 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

sudo说明

sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。su:切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。sudo-i:为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后...
转载
发布博客 2021.09.06 ·
1046 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Drive-by-Wire

Drive-by-Wire的意思,中文翻译是“电传线控”,但这个翻译其实也未尽理想,因为中文字每个字都有意义,眼睛看到“线控”二个字,脑海里就不由自主地浮起一条线、一条钢缆在拉动著控制油门的节流阀,然而,所谓的Drive-by-Wire的基础精神,正是要摆脱传统油门控制靠钢缆这种机械结构的锢制!  Drive-by-Wire中文翻译“电传线控”  一般汽车的油门控制,乃是在踏下油门踏板之后,经由连杆拉动钢缆而控制汽门的节流阀,脚踩得愈深,钢缆拉动的幅度愈大,节流阀控制机构上的蝴蝶阀开启的角度也就
转载
发布博客 2021.09.01 ·
318 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用Google的gflags优雅的解析命令行参数

写了这么多年的Linux下C/C++代码,一直使用getopt_long来解析命令行参数,同时定义一个全局的struct来保存各个命令行参数的值。虽然用得比较“繁琐”,但也安于现状。最近突然发现了Google早在多年前就开源了一个解析命令行参数的“神器”gflags。赶紧来爽一把。安装1、去官网下载一个最新的版本(gflags-2.1.1.tar.gz)。2、现在流行cmake的构建方式,gflags的最新版本也改为使用cmake了。还好我最近也刚刚学习了cmake,算是跟上了潮流。[amc
转载
发布博客 2021.08.27 ·
493 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

激光雷达分类

导读:机械式激光雷达、固态激光雷达、MEMS激光雷达、Flash面阵激光雷达、OPA固态激光雷达、混合固态激光雷达...如此多种激光雷达,你了解多少?激光雷达是一种通过发射激光束探测目标的位置、速度等特征量的雷达系统——激光波段位于0.5μm-10μm,以光电探测器为接收器件,以光学望远镜为天线。激光雷达因为激光波长短,准直性高,使得激光雷达性能优异:角分辨率和距离分辨率高、抗干扰能力强、能获得目标多种图像信息(深度、反射率等)、体积小、质量轻。目前激光雷达广泛应用在测绘、气象监测、安防、自
转载
发布博客 2021.08.27 ·
1270 阅读 ·
0 点赞 ·
0 评论 ·
18 收藏

分段内存管理模型

x86 CPU 在实模式下的寄存器。表中每个寄存器都是 16 位的。实模式下的寄存器实模式下访问内存虽然有了寄存器,但是数据和指令都是存放在内存中的。通常情况下,需要把数据装载进寄存器中才能操作,还要有获取指令的动作,这些都要访问内存才行,而我们知道访问内存靠的是地址值。那问题来了,这个值是如何计算的呢?计算过程如下图。实模式下访问内存结合上图可以发现,所有的内存地址都是由段寄存器左移 4 位,再加上一个通用寄存器中的值或者常数形成地址,然后由这个地址去访问内存。这就是大名鼎鼎的分.
原创
发布博客 2021.08.15 ·
338 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多