摘要: [TOC] ![image](https://img2023.cnblogs.com/blog/1569451/202305/1569451-20230528205909613-561937823.png) ## 全文参考链接 - 1.leetcode - 2.[数据结构与算法之美](https:/ 阅读全文
posted @ 2023-01-03 11:26 胖白白 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 目录系列文章unix网络编程1.1——TCP协议详解(一)unix网络编程2.1——高并发服务器(一)基础——io与文件描述符、socket编程与单进程服务端客户端实现unix网络编程2.2——高并发服务器(二)多进程与多线程实现unix网络编程2.3——高并发服务器(三)多路IO复用之select 阅读全文
posted @ 2022-12-18 12:21 胖白白 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 目录二叉树概念二叉树的遍历方式DFS(前序 中序 后序遍历)144. 二叉树的前序遍历递归解法迭代解法94. 二叉树的中序遍历145. 二叉树的后序遍历层序遍历--队列的作用102. 二叉树的层序遍历107. 二叉树的层序遍历 II429. N 叉树的层序遍历二叉搜索树概念:98. 验证二叉搜索树7 阅读全文
posted @ 2022-12-06 14:30 胖白白 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 目录系列文章unix网络编程1.1——TCP协议详解(一)unix网络编程2.1——高并发服务器(一)基础——io与文件描述符、socket编程与单进程服务端客户端实现unix网络编程2.2——高并发服务器(二)多进程与多线程实现unix网络编程2.3——高并发服务器(三)多路IO复用之select 阅读全文
posted @ 2022-12-03 17:12 胖白白 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 目录前置文章unix网络编程1.1——TCP协议详解(一)unix网络编程2.1——高并发服务器(一)基础——io与文件描述符、socket编程与单进程服务端客户端实现unix网络编程2.2——高并发服务器(二)多进程与多线程实现unix网络编程2.3——高并发服务器(三)多路IO复用之select 阅读全文
posted @ 2022-11-27 23:17 胖白白 阅读(275) 评论(0) 推荐(1) 编辑
摘要: 目录前言网络7层协议与4层协议TCP/IP四层模型通信过程TCP与UDP的区别:TCP:UDP:CS模型-TCP总览数据进入协议栈时的封装过程TCP数据格式TCP三次握手通信时序图TCP四次挥手半关闭TCP流量控制(滑动窗口)减少小包数量Nagle算法——Socket 设置 TCP_NODELAY延 阅读全文
posted @ 2022-11-19 23:22 胖白白 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 目录前置文章unix网络编程1.1——TCP协议详解(一):https://www.cnblogs.com/kongweisi/p/16882787.html一些有用的指令strace指令执行查看进程执行流程netstat查看网络状态nc模拟客户端linux中的io与文件描述符socket编程soc 阅读全文
posted @ 2022-11-15 00:02 胖白白 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 目录1.shared_ptr线程安全问题1.1.多线程多对象指向一个shared_ptr导致的线程不安全1.2.加锁解决2.tips: constexpr的作用3.结论4.参考 1.shared_ptr线程安全问题 1.1.多线程多对象指向一个shared_ptr导致的线程不安全 例子:创建了10个 阅读全文
posted @ 2024-05-26 23:47 胖白白 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 目录1.在linux内核初始化程序中fork需要_syscall0(int,fork) 的背景1.1.背景1.2.重点来了-为啥需要_syscall0(int,fork)2.内联函数 + 宏定义的作用3.参考 1.在linux内核初始化程序中fork需要_syscall0(int,fork) 的背景 阅读全文
posted @ 2024-05-24 22:02 胖白白 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 目录1.菱形继承1.1.菱形继承的问题1.2.解决办法2.虚函数与多态2.1.普通函数不能实现多态2.2.虚函数(子类重写)+ 父类指向子类——实现多态2.3.多态原理3.c++内存模型4.参考 1.菱形继承 先看下面的例子,SheepTuo同时继承了Sheep和Tuo,而他们同时继承Animal类 阅读全文
posted @ 2024-05-20 23:19 胖白白 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 目录引言何为cpu亲缘性使用亲缘性的好处Linux CPU亲缘性的使用例子参考-强推~ 引言 关于cpu亲缘性,文末参考链接讲述的非常详细,本文只记录自己写的一个小demo来了解cpu亲缘性 何为cpu亲缘性 所谓CPU亲缘性可以分为两大类:软亲缘性和硬亲缘性。 Linux 内核进程调度器天生就具有 阅读全文
posted @ 2024-04-11 23:00 胖白白 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 目录一个demo(对全局变量++)-->反汇编阅读cpu指令多个线程都去对全局变量++线程不挂起sleep(0)使线程挂起,让出cpu总结一下为啥不到10W?加锁版本自旋锁替换互斥量自旋锁与互斥量的区别参考 近期在重读APUE,对unix下多线程有了新的理解 用一个小demo来说明多线程下写全局变量 阅读全文
posted @ 2024-04-10 22:08 胖白白 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 目录1.信号的概念和机制1.1.信号的机制1.2.与信号相关的概念1.2.1.信号产生1.2.2.信号的状态1.2.3.信号的处理方式1.3.信号屏蔽字与未决信号集1.4.信号四要素与常见信号1.4.1.信号四要素1.4.1.常见信号1.5.kill函数和kill命令1.6.两个闹钟(定时器)函数1 阅读全文
posted @ 2024-03-26 22:10 胖白白 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 目录静态库、动态库比较与制作静态库与动态库比较静态库制作方法如何使用动态库地址回填静态库与动态库函数反汇编比较——延迟绑定动态库制作生成与位置无关的代码—— -fPICgcc -share 制作动态库.so编译ELF时,指定所用的动态库 -l: 指定库名 -L: 指定库路径动态库加载错误及解决办法 阅读全文
posted @ 2024-03-24 16:43 胖白白 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 目录gcc编译步骤与常用参数编译步骤常用指令选项 gcc编译步骤与常用参数 编译步骤 源码hello.c只有寥寥几行代码 #include <stdio.h> int main(void) { printf("hello\n"); } 执行-E预处理,得到hello.i,生成了很长的.i文件 -S编 阅读全文
posted @ 2024-03-24 14:07 胖白白 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 目录1.基本概念2.git基本操作2.1.基本操作2.2.逆向操作2.3.本地仓库整理操作2.4.分支操作3.git进阶操作3.1.cherry pick4.git常见问题4.1."Changes not staged for commit:"4.2."Untracked files:" 1.基本概 阅读全文
posted @ 2023-09-20 20:47 胖白白 阅读(35) 评论(0) 推荐(0) 编辑
摘要: [TOC] # 1. dfs和bfs区别,解决不同的问题 - 通常来说,BFS适用于求最短路径,DFS用来解决最长匹配、连通性这些问题比较方便 【例1】 1091. 二进制矩阵中的最短路径 链接1:https://leetcode.cn/problems/shortest-path-in-binar 阅读全文
posted @ 2023-07-08 11:32 胖白白 阅读(84) 评论(0) 推荐(0) 编辑