龙虾天天
码龄17年
关注
提问 私信
  • 博客:651,050
    651,050
    总访问量
  • 54
    原创
  • 1,533,265
    排名
  • 103
    粉丝
  • 1
    铁粉

个人简介:未来看现在,是否无遗憾

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

每天写一点,进步一点点

查看详细资料
个人成就
  • 获得146次点赞
  • 内容获得29次评论
  • 获得503次收藏
  • 代码片获得301次分享
创作历程
  • 3篇
    2022年
  • 6篇
    2021年
  • 2篇
    2020年
  • 22篇
    2019年
  • 1篇
    2018年
  • 37篇
    2017年
  • 60篇
    2016年
  • 2篇
    2013年
  • 24篇
    2012年
成就勋章
TA的专栏
  • ceph
    1篇
  • 文件系统
    1篇
  • BRPC深度学习
  • RFC文档
    2篇
  • 数据结构
    1篇
  • IPsec
    1篇
  • PPPoE
    1篇
  • PPTP
    3篇
  • TCP
  • React
    8篇
  • HTML
    2篇
  • JavaScript
  • 数据交互处理
  • 打包工具
    1篇
  • 版本管理
    1篇
  • 计算机网络
    1篇
  • LeafLet
    8篇
  • Mapbox
    40篇
  • PPP
    2篇
  • Linux
    7篇
  • Linux编程
    2篇
  • Linux内核网络
    2篇
  • Andoid
  • NPM
  • 存储
    14篇
  • FC
    3篇
  • CTDB
    2篇
  • Linux命令/shell
    5篇
  • github
  • C
    1篇
  • makefile
    1篇
  • 算法
    3篇
  • C语言
    9篇
  • java语言
    7篇
  • C++
    6篇
  • 工具
  • 动态网页技术
    4篇
  • 职业规划
    1篇
  • 网络技术
    1篇
  • 计算机原理
  • GIT
    2篇
  • GDB
    1篇
  • Linux IO
    2篇
  • python
    5篇
  • Linux内存管理
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

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

ceph基础库 - ThreadPool

代码路径所在代码位置:src/common/WorkQueue.cc线程池功能描述线程池主要成员class ThreadPool : public md_config_obs_t{ unsigned _num_threads; //构造线程池时指定的线程数量 std::vector<WorkQueue_*> work_queues; //待处理队列 std::set<WorkThread*> _threads; //
原创
发布博客 2022.05.24 ·
387 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

本地文件系统文件数据管理

磁盘布局是磁盘的空间划分管理,文件的空间被文件系统划分为与文件系统块一样大小的若干逻辑块,文件系统要做的事情就是将文件的逻辑块和磁盘的物理块建立联系,即文件系统数据管理。基于连续区域一次性为文件分配其所需要的空间,且空间在磁盘上是连续性的。因此只需要知道文件的起始位置所对应的磁盘位置和文件长度就可以知道文件数据在磁盘上是如何存储的。这种方案的主要缺点是:不够灵活,特别是追加写操作非常困难容易形成碎片空间目前主要应用在光盘等存储介质的文件系统中,如ISOFS基于链表将磁盘空间划分为相等大
原创
发布博客 2022.04.07 ·
597 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

归并排序的实现方式(C++)

merge函数void merge(vector<int> &vec, int lo, int mid, int hi) { vector<int> save; //临时数组 std::copy(vec.begin(), vec.end(), back_inserter(save)); int i = lo, j = mid + 1; for (int k = lo; k <= hi; k++) { //从lo向h
原创
发布博客 2022.02.18 ·
514 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Heap题型套路

1 heap简介heap本质上是用Array或者vector实现的完全二叉树,这个tree的root节点代表整个heap的最大值(max_heap)或最小值(min_heap)。常用于解决Top K问题。C++并没有将heap作为容器,而是作为算法放到< algorithm>中,默认是max_heap,但是也可以通过指定比较算法构造min_heap。heap的低层机制vector本身就是一个类模板, 常用的API有以下几个:std::make_heap(RandomIt first,
原创
发布博客 2021.12.31 ·
567 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Array题型刷题套路

1 概述Array类型题型,一般而言题目中数据都有固定长度或者数量,通常使用双指针的方式解决此类问题。此处双指针不一定就是两个指针,同时也不一定是真实的指针,而且多数是数组下标的处理方式,主要是指使用双指针的思维,比如同向移动指针或者反向移动指针。2 同向双指针方式使用下图表示同向双指针的思考方式:同向双指针将数据分为三个区域:[0, i) 表示处理好的数据[i, j) 表示处理过但是不需要的数据[j, array.len) 表示接下来要处理的数据那么一般此类题的通用步骤就是:初始
原创
发布博客 2021.12.29 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++ STL源码剖析 -- 二叉堆

1 二叉堆二叉堆,就是一种完全二叉树,即整个二叉树除了最底层的叶子节点之外,是填满的,而最底层的叶子节点中间也没有空隙,如下图所示:使用数组层级存储| * | A | B | C | D | E | F | G | H | I | J |如果0位置保留,从1位置开始保存根节点,那么i位置的某个节点,其左孩子节点必定在2i位置,其右孩子节点则在2i+1位置,其父节点则位于i/2。如果0位置使用,从0位置开始保存根节点,那么i位置的某个节点,其左孩子节点必定在2i+1位置,其右孩子节点则在2i+2位
原创
发布博客 2021.12.27 ·
555 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

文件系统分布式锁简要介绍

1 命名空间不同服务的锁用不同的namespace来区分,不同元数据服务上锁namespace的名字不同,元数据锁和数据锁的namespace也不同,客户端理论上会向所有的服务发请求,所以客户端的锁分布在不同的namespace下,锁客户端用namespace来组织不同的锁链表.分布式锁模块跟元数据服务器中其他模块比较独立,它保存了系统中所有已经向该元数据服务器申请的锁。当有新的锁请求到来时,会直接进入锁申请模块。锁模块会检查该资源上是否已经有锁,并检查锁是否存在冲突,以决定申请的锁是否会被授权。客户
原创
发布博客 2021.12.22 ·
432 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++同步并发操作

何时需要线程同步线程完成前,需要等待另一个线程执行线程需要等待特定事件发生线程等待某个条件变为true线程同步的方式持续检查共享标记void wait_for_flag() { std::unique_lock lock(m); while (!flag) { lock.unlock(); lock.lock(); } do_something();}等待线程在检查间隙void wait_for_flag
原创
发布博客 2021.12.19 ·
838 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++线程间共享数据

通常我们使用锁保护线程间共享数据,这也是最基本的方式。当访问共享数据前,使用互斥量将相关数据锁住,再当访问结束后,再将数据解锁。线程库需要保证,当一个线程使用特定互斥量锁住共享数据时,其他的线程想要访问锁住的数据,都必须等到之前那个线程对数据进行解锁后,才能进行访问。这就保证了所有线程能看到共享数据,而不破坏不变量。1 使用互斥量C++提供 std::mutex创建互斥量,通过调用 lock()上锁,unlock()解锁。为方便使用,C++提供RAII语法的模板类 std::lock_guard()
原创
发布博客 2021.12.18 ·
1000 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux配置samba服务器

1 Linux 安装sambayum install -y samba2 修改配置文件添加用户adduser root \\如果是当前linux登录用户,可以省略该步smbpasswd -a root \\回车之后设置密码vim /etc/samba/smb.conf打开配置文件后,进行如下配置测试samba配置文件:testparm查看win当前用户工作组的方式:在dos命令行中输入net config workstation。设置防火墙:firewall-cmd
原创
发布博客 2020.10.28 ·
2849 阅读 ·
2 点赞 ·
1 评论 ·
21 收藏

GitLab配置ssh-key

1 背景当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成ssh key,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成ssh key,然后配置在gitlab里,而后使用ssh协议进行提交和拉取git远程仓库的代码。2 解决方案打开本地git bash,使用
转载
发布博客 2020.10.27 ·
2012 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

SAN和NAS路径图

SAN路径图NAS路径图
原创
发布博客 2019.09.05 ·
1206 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

kmalloc/kfree,vmalloc/vfree函数用法和区别

1 kmallockmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。2 kamlloc函数原型#include<linux/slab.h>void *kmalloc(size_t size, int flags);(1)第...
转载
发布博客 2019.08.14 ·
1121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux 的 NUMA 技术

一、引言随着科学计算、事务处理对计算机性能要求的不断提高,SMP(对称多处理器)系统的应用越来越广泛,规模也越来越大,但由于传统的SMP系统中,所有处理器都共享系统总线,因此当处理器的数目增大时,系统总线的竞争冲突加大,系统总线将成为瓶颈,所以目前SMP系统的CPU数目一般只有数十个,可扩展能力受到极大限制。NUMA技术有效结合了SMP系统易编程性和MPP(大规模并行)系统易扩展性的特点,较好解...
转载
发布博客 2019.08.13 ·
4425 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

Linux Slab分配器--概述

slab分配器是Linux内存管理中非常重要和复杂的一部分,其工作是针对一些经常分配并释放的对象,如进程描述符等,这些对象的大小一般比较小,如果直接采用伙伴系统来进行分配和释放,不仅会造成大量的内碎片,而且处理速度也太慢。而slab分配器是基于对象进行管理的,相同类型的对象归为一类(如进程描述符就是一类),每当要申请这样一个对象,slab分配器就从一个slab列表中分配一个这样大小的单元出去,而当...
转载
发布博客 2019.08.12 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux内存管理中的slab分配器

Linux内核中基于伙伴算法实现的分区页框分配器适合大块内存的请求,它所分配的内存区是以页框为基本单位的。对于内核中小块连续内存的请求,比如说几个字节或者几百个字节,如果依然分配一个页框来来满足该请求,那么这很明显就是一种浪费,即产生内部碎片(internal fragmentation)为了解决小块内存的分配,Linux内核基于Solaris 2.4中的slab分配算法实现了自己的slab分配...
转载
发布博客 2019.08.12 ·
406 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

解读关键字volatile

1 volatile是什么?volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。2 编译器优化是什么意思?int i = 5;int a = i;……int b = i;编译器发现两次从i读数据的代码...
转载
发布博客 2019.08.09 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态分级存储特性-SmartTier

1简介SmartTier动态分级存储特性提供智能化数据存储管理的功能,通过统计和分析数据的活跃度,将不同活跃度的数据和不同特点的存储介质动态匹配,提高存储系统性能并降低用户成本。应用SmartTier特性不会中断现有业务,不会影响数据读写。SmartTier SmartTier通过数据迁移将活跃度高的繁忙数据迁移至具有更高性能的存储介质(如SSD硬盘),将活跃度低的空闲数据迁移至具有更高容量且更...
转载
发布博客 2019.08.01 ·
5210 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

正则表达式标记

正则表达式标记属于正则的扩展表示法,格式:(?iLmsx)各个字符的含义是:i:不区分大小写的匹配L:根据所使用的本地语言环境通过\w、\W、\b、\B、\s、\S实现匹配s:使点号(.)可以匹配
m:能够在目标字符串实现跨行都说,而不必将整个字符串视为单个实体x:该标记允许用户通过抑制在正则表达式中使用空白符(除了在字符类中或者发斜线转义中)来创建更易读的正则表达式举例:参...
原创
发布博客 2019.07.06 ·
622 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

python re模块的findall和finditer

python正则模块re中findall和finditer两者相似,但却有很大区别。两者都可以获取所有的匹配结果,这和search方法有着很大的区别,同时不同的是一个返回list,一个返回一个MatchObject类型的iteratorcontent = '''email:12345678@163.comemail:2345678@163.comemail:345678@163.com'...
转载
发布博客 2019.07.05 ·
11986 阅读 ·
10 点赞 ·
0 评论 ·
18 收藏
加载更多