logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

5. Linux 多线程基础总结

1. 线程  每个进程都有自己的数据段、代码段、堆栈段。线程具有独立的栈、CPU寄存器状态。但一个进程下的所有线程共享其进程的所有资源:打开的文件内存页面信号标识动态分配的内存  一个进程至少需要一个线程作为他的指令执行体。  操作系统可以按照时间片轮转的方式调度多个进程,一个进程也会在自己所分配的时间片内按调度方式调度自己的各个线程。2. 线程分类用户级线程:主要解决上下文切换,调度过程由用户决

文章图片
#c++#linux
VXLAN:背景、机制、报文字段与主机转发流程

背景:解决 VLAN 4094 上限和大二层跨三层扩展问题;机制:基于 MAC-in-UDP 的 Overlay 技术,通过 VTEP 实现封装与解封装;标识:使用 24 bit 的 VNI 提供约 1600 万级别的逻辑隔离;报文:原始二层帧外层依次封装 VXLAN 头、UDP 头、IP 头;UDP 目的端口固定为 4789;转发:内层依靠 MAC 地址定位目标主机,外层依靠 IP 地址定位远端

文章图片
#网络
VLAN 详细解析:帧格式与消息处理流程

VLAN 是一种将物理局域网在逻辑上划分为多个相互隔离的广播域的技术。它工作在 OSI 模型的第二层(数据链路层),通过在以太网帧中插入VLAN 标签(Tag)来标识帧归属的逻辑网络。一个独立的广播域:VLAN 内的广播帧只会在属于同一 VLAN 的端口间传播,不会跨越到其他 VLAN。一组逻辑上的端口集合:同一台交换机甚至跨越多台交换机的端口,都可以被划分到同一个 VLAN。(只需要二层转发)一

#网络
深入理解虚拟文件系统(VFS)

虚拟文件系统(VFS)是操作系统内核中的抽象层,统一管理各类文件系统。它屏蔽底层差异,提供一致的接口,支持多种文件系统(如ext4、NFS、tmpfs)共存与挂载。核心由超级块、inode、dentry和file四类对象构成,通过操作函数表实现多态调用。路径查找依赖dentry缓存加速,读写操作利用页缓存提升性能。VFS简化开发,使新文件系统只需实现标准接口即可集成,是Linux文件系统架构的核心

#linux
HTTP1、HTTP1.1、http2、http3的区别

我们知道HTTP/1和HTTP/2都是使用TCP协议来传输的,而如果使用HTTPS的话,还需要使用TLS协议进行 安全传输,而使用TLS也需要一个握手过程,这样就需要有两个握手延迟过程。这不同于HTTP/1.1,使用HTTP/1.1时,浏览器为每个域名开启了6个TCP连接,如果其中的1个TCP连接发生了队头阻塞,那么其他的5个连接依然可以继续传 输数。从上图可以看出,HTTP的持久连接可以有效减少

文章图片
#http
云计算与虚拟化工具之KVM,KVM和VMware的区别

云计算与虚拟化工具之KVM一、云计算介绍一、云计算是什么云计算是一种模式云计算必须通过网络来使用弹性计算、按需付费、快速扩展 (VPS就无法做到)不需要关心太多基础设施,都有云计算提供商提供二、云计算分类私有云 解释:私有云就是自己构建一个云计算平台公有云 解释:公有云提供商来进行提供云计算服务混合云 解释:既有私有云又包含公有云三、云计算分层三种不同的场景1.IDC环境 需要考虑网络、服务器、机

Atomic 与 Mutex 在处理简单变量时的差异

原子操作是指不可分割的操作,即该操作要么完整执行,要么完全不执行,不会出现中间状态。是 C++11 引入的模板类,它利用 CPU 提供的原子指令(如LOCK前缀指令)直接对内存进行操作,无需操作系统介入。// 原子自增互斥锁是一种同步原语,通过加锁(lock)和解锁(unlock)来保护临界区。同一时刻只允许一个线程持有锁,其他线程必须等待。std::mutex是 C++11 提供的标准互斥锁实现

#c++
线程同步——信号量

信号量是一种特殊的变量,是操作系统层面的,可以被增加或减少。信号量用于保护一段资源,使其每次只能被有限的线程访问到。

文章图片
#c语言#c++#开发语言
matlab绘图如何将ylabel旋转

前言  本来是一个小问题,结果自己找了好久才解决,还是写一下供大家参考;keymatlab绘图如何将y坐标轴横着。11111x=0:0.01:10;y=sin(x);plot(x,y,'LineWidth',2);ylabel('y label','FontSize',12);这样写时,得到的图ylabel是竖着的:当代码改变为:ylabel('y label','rotation',0,'Fon

#matlab
C++创建二维数组的四种方式

目录使用一维数组模型二维数组静态二维数组动态二维数组利用vector创建二维数组包含头文件#include <iostream>#include <vector>using namespace std;int rows=3,col=4;使用一维数组模拟二维数组int arr[]={5,1,6,9,8,3,5,5,0,6,0,7};//一维数组for(int i=0;i&lt

#c++
    共 15 条
  • 1
  • 2
  • 请选择