当前位置: 首页 > news >正文

【笔记】X射线物理基础

一、X射线衍射分析简史

1895年X射线发现

1896 年 2 月对骨折的观察:G.和 E. Frost是第一个使用 X 射线进行医疗用途

1897 年法国海关官员的行李扫描。

X射线衍射理论1

X射线衍射理论2

元素的特征X射线

X射线光电子的应用

电磁波的粒子属性

X射线层析成像法

X-ray Computed Tomography X 射线计算机断层扫描 (CT)

X 射线衍射 (XRD) 只是 X 射线在材料表征中的应用之一

二、X射线的本质和产生

1.X射线的本质

X射线是电磁波的一种。

**电磁波(Electromagnetic wave)**是由同相振荡且互相垂直的电场与磁场在空间中衍生发射的振荡粒子波,是以波动的形式传播的电磁场,具有波粒二象性,其粒子形态称为光子,电磁波与光子是根据实际研究的不同,其性质所体现出的两个侧面。电磁波是横波,由同相振荡且互相垂直的电场与磁场在空间中以波的形式移动,其传播方向垂直于电场与磁场构成的平面。电磁波在真空中速率固定,速度为光速。见麦克斯韦方程组。
在X射线衍射分析中,记录的是电场强度矢量所引起的物理效应,磁场强度矢量引起的效应不再提及。

X射线是电磁波,具有波粒二象性。

1.波动性

X射线对应波长为 1 0 − 12 10^{-12} 1012~ 1 0 − 9 10^{-9} 109m,波长和紫外线和γ射线有一定交叠。

不同用途X射线波长不同,X射线波长越短,穿透材料的能力越强(衍射的能力越强)。

根据X射线波长不同分为:

  1. 硬X射线:
    1. 波长为0.25~0.05nm,用于晶体结构分析;
    2. 波长为0.1~0.005nm,用于金属无损检测
  2. 软X射线:波长为1~100nm,用于医学透视及安检

波动性表现:

  • 连续、干涉和衍射(三角函数描述)

  • 与物质相互作用:吸收和散射(统计学描述)

2.粒子性

描述X射线波动的物理量(频率 ν \nu ν、波长λ)与描述粒子特性光子能量E、动量P之间,遵循爱因斯坦关系式:
E = m c 2 = h ν = h c / λ P = m c = h / λ = h ν / c E=mc^2=h\nu=hc/\lambda\\ P=mc=h/\lambda=h\nu/c E=mc2=hν=hc/λP=mc=h/λ=hν/c

2.X射线的产生

真空中高速运动的带电粒子撞击到任何物质时均可产生X射线。

产生X射线基本条件为:
  1. 产生自由电子
  2. 使电子做定向高速运动
  3. 在电子运动路径上设置突然减速的障碍物
产生X射线的设备——X射线管

管内抽成真空,电子运行不受阻碍,使阴极发出电子在电场作用下到达阳极

阴极采用钨丝(耐高温,原子序数高更容易失去电子),通过电流加热,阴极表面原子的外层电子,受到一定的热能或电能的激励后,会越出轨道的束缚而成为自由电子。

阳极接地,用水冷却(和阳极靶相撞,产生热)。一般阳极靶采用导热性好、熔点高的材料制成,如Cu。

在靶上镀上一层过渡金属防止烧毁或者用转靶装置(靶面受到阴极电子束轰击的部位不断变换)

工作过程: X射线是由阴极加发射出(热)电子, 经高速电压加速,获得能量,运动速度很大, 这种高速电子去撞击阳极A,电子部分动能转变为X光能,以光子的形式表现出来。

三、特征X射线与连续X射线(Characteristic X-ray and Bremsstrahlung Continuum)

1.连续X射线

1.连续辐射和连续谱

连续辐射/韧致辐射:阴极射出的高速电子和靶材原子相撞,运动受阻而减速,其损失的动能以X射线光子的形式辐射出来。每次碰撞损失的动能不完全相等,因此辐射出的X射线光子的波长是按统计规律连续分布的。

X射线连续谱:大量电子冲击靶所辐射出的X射线光量子的波长,按照统计规律连续分布在一个较大的波长范围,所获得的强度。

短波限:横轴右侧截距

2.短波限

在管电压V的作用下,电子到达阳极靶的动能为eV,如果电子动能全部转化成一个X光光子,则此光子具有最大的能量、频率和最短的波长,此时的波长为短波限: e V = h ν = h c λ 0 = > λ 0 = h c e V eV=h\nu=h\frac{c}{\lambda_0}=>\lambda_0=\frac{hc}{eV} eV=hν=hλ0c=>λ0=eVhc

代入各项常数,得: λ 0 = 12.40 V ( 1 0 − 10 m ) = 1.24 V ( n m ) \lambda_0=\frac{12.40}V(10^{-10}m)=\frac{1.24}V(nm) λ0=V12.40(1010m)=V1.24(nm)

可知短波限只与管电压有关而与管电流和靶材的原子序数无关。 管电压越高,撞击越剧烈,高频无量子越多, 短波限和曲线峰值也左移。

3.连续X射线谱的强度

连续X射线谱的强度指的是曲线下包围的面积,实验得: I 连 = ∫ λ 0 ∞ I ( λ ) d λ = K 1 i Z V 2 I_{连}=\int_{\lambda_0}^{\infin}I(\lambda)d\lambda=K_1iZV^2 I=λ0I(λ)dλ=K1iZV2

K 1 K_1 K1是常数 1.4 × 1 0 − 9 V − 1 1.4\times 10^{-9}V^{-1} 1.4×109V1,i是管电流,Z是阳极靶材的原子序数,V是管电压。

  • 管电压越高,相对强度越大,短波限越小
  • 管电流越大,相对强度越大,短波限不变
  • 靶材原子序数越高,相对强度越大,短波限不变

X射线管发射连续X射线的效率η: η = 连续 X 射线总强度 / X 射线管功率 = K 1 i Z V 2 / i V = K 1 Z V \eta=连续X射线总强度/X射线管功率=K_1iZV^2/iV=K_1ZV η=连续X射线总强度/X射线管功率=K1iZV2/iV=K1ZV

以钨(Z=74)阳极,管电压100kV为例,则 η ≈ 1 \eta\approx1% η1,可见,X射线管效率很低,绝大部分能量在撞击时转化为热能丧失,所以采取有效的冷却措施是必要的。

2.特征X射线

特征X射线:阴极射向阳极的电子具有足够大的动能时,把靶材原子的某些内层电子撞离产生空位,使原子处于不稳定高能激发态,于是,外层电子向内层跃迁填补空位,多余的能量以X射线光子的形式辐射出来。

特征辐射/标识辐射:选定阳极靶,其原子核外每层电子能量恒定,跃迁辐射出的光子波长也是若干个特征值,它们反映出原子的原子序数特征,和原子所处的物理、化学状态基本无关。故称这种辐射为特征辐射。

特征X谱线:X射线谱上,狭小而尖锐的、叠加于连续谱上的谱线,这些谱线对应的波长与管电压和电流无关,称为特征X谱线。

特征X射线频率

当电子从主量子数 n 2 n_2 n2跃迁到 n 1 n_1 n1时, h ν n 2 → n 1 = E n 2 − E n 1 = R h c ( Z − σ 2 ) ( 1 n 1 2 − 1 n 2 2 ) h\nu_{n_2\rightarrow n_1}=E_{n_2}-E_{n_1}=Rhc(Z-\sigma^2)(\frac1{n_1^2}-\frac1{n_2^2}) hνn2n1=En2En1=Rhc(Zσ2)(n121n221)

K系谱线:跃迁到K层空位所辐射的特征X射线,根据不同的壳层K、L、N、……,把K系谱线分为 K α , K β , . . . K_{\alpha},K_{\beta},... Kα,Kβ,...

在这里插入图片描述

特征X射线波长(莫塞莱定律)

希望得到单色的X射线。

已知== λ = c ν = > 1 λ = K 2 ( Z − σ ) \lambda=\frac c{\nu}=>\sqrt{\frac1{\lambda}}=K_2(Z-\sigma) λ=νc=>λ1 =K2(Zσ)==,这里的 K 2 K_2 K2是和n有关的常数,σ是屏蔽常数(和电子所在壳层位置有关)

莫塞莱定律是X射线荧光光谱和电子探针微区成分分析的理论基础。

特征X射线应用

1.特征X射线作为被收集的信号——能谱:一个元素有一组自己的特征谱线,根据特征谱线识别不同元素越靠近原子核,相邻能级间的能量差也越大; 同一电子层,靠外亚层的电子能量高,跃迁释放的波长短。

E K α > E L α > E M α E_{K\alpha}>E_{L\alpha}>E_{M\alpha} EKα>E>EMα

E K β > E K α > E L α E_{K\beta}>E_{K\alpha}>E_{L\alpha} EKβ>EKα>E

在这里插入图片描述

2.特征X射线作为发射的光源——XRD:作为单一波长的光源进入被测晶体

一般选择K系谱线作为晶体衍射所需射线,L和 M系能量较低,易被吸收。 阳极靶材一般选用Cr,Fe,Co,Cu, Mo等。

注意:在此应用中,单一波长X射线作为光源进入被检测的晶体,与晶体内的不同组晶面发生衍射。

四、X射线与物质的相互作用(X-ray’s Interaction with Matter)

物质对X射线的吸收有两种方式:

  1. 原子对X射线的漫反射,形成漫反射的X射线四周发散,其能量只占吸收能量的一小部分。
  2. 电子在原子内迁移引起的,其能量主要包括光电子吸收、荧光X射线辐射、俄歇电子等能量以及热散能量,称为真吸收。

漫反射式吸收和真吸收构成了由质量吸收系数 μ m \mu_m μm表征的全吸收。

1.散射现象

物质对X射线的散射主要是电子和X射线交互作用的结果。

  • 相干散射:射线与内层电子发生碰撞,能量没有失去,但方向发生变化,故频率和波长没有变化。——发生衍射的基础

  • 非相干散射:射线与外层电子或价电子或金属晶体中的自由电子相碰撞时,电子被撞离电子带走部分能量,而成为了反冲电子。射线方向和波长都发生变化。

根据散射前后能量和动量守恒,推导出散射X射线的波长增大值: Δ λ = λ ′ − λ = h m e c ( 1 − c o s θ ) = λ e ( 1 − c o s θ ) = 0.00245 ( 1 − c o s θ ) = 2 λ e s i n 2 θ 2 ( n m ) \Delta\lambda=\lambda'-\lambda=\frac{h}{m_ec}(1-cos\theta)=\lambda_e(1-cos\theta)=0.00245(1-cos\theta)=2\lambda_esin^2\frac{\theta}2(nm) Δλ=λλ=mech(1cosθ)=λe(1cosθ)=0.00245(1cosθ)=2λesin22θ(nm)

各原子产生的X射线散射波散布空间各个方向,波长互不相同,也不存在确定的周相关系,互不干涉。

入射X射线波长越短,被照物质元素越轻,非相干散射越显著。

2.吸收现象

把非相干散射的X射线作为信号来收集,从而识别。

(1)X射线真吸收与衰减规律

X射线的吸收:X射线穿过被照物体,因为散射、光电效应、热损耗的影响,出现强度衰减。

衰减的程度和所经过物质的厚度成正比,也和入射X射线的强度和物质密度密切相关。

强度为 I 0 I_0 I0的入射线穿过厚度为 Δ x \Delta x Δx的物件后,强度衰减为I,则: I 0 − I I 0 = Δ I I 0 = − μ l Δ x \frac{I_0-I}{I_0}=\frac{\Delta I}{I_0}=-\mu_l\Delta x I0I0I=I0ΔI=μlΔx

这里的 μ l \mu_l μl是被照射物体的线吸收系数或衰减系数, c m − 1 cm^{-1} cm1,相当于单位厚度物质对X射线的吸收。

Δ x \Delta x Δx很小时,上述式子近似等于 d I I = − μ l d x \frac{dI}{I}=-\mu_ldx IdI=μldx

μ l \mu_l μl不仅和原子序数Z、X射线的波长有关,还和物质的密度有关。为了去掉密度对吸收系数的影响,用 μ m \mu_m μm代替 μ l \mu_l μl μ l = μ m ρ \mu_l=\mu_m\rho μl=μmρ μ m \mu_m μm为质量吸收系数,和物质密度无关,表示单位质量物质对X射线的吸收程度。

d I I = − μ l d x \frac{dI}{I}=-\mu_ldx IdI=μldx 进行积分求解, ∫ I 0 I d I I = − ∫ 0 x ρ μ m d x = > I = I 0 e − μ m x ρ \int_{I_0}^I\frac{dI}{I}=-\int_0^x\rho\mu_mdx=>I=I_0e^{-\mu_mx\rho} I0IIdI=0xρμmdx=>I=I0eμmxρ,其中 I I 0 \frac{I}{I_0} I0I称为透射系数或透过率。

对于任一元素,质量吸收系数 μ m \mu_m μm是原子序数Z、X射线的波长的函数: μ m ≈ K λ 3 Z 3 \mu_m\approx K\lambda^3Z^3 μmKλ3Z3,K为系数。

对于复杂物质,质量吸收系数 μ m \mu_m μm是个元素的质量吸收系数 μ m i \mu_{mi} μmi及各元素的质量分数 ω i \omega_i ωi的加权平均值: μ m = ∑ ω i μ m i \mu_m=\sum\omega_i\mu_{mi} μm=ωiμmi

实验证明,连续X射线穿过物质时的 μ m \mu_m μm相当于一个波长值为有效波长 λ 有效 \lambda_{有效} λ有效所对应的质量吸收系数,有效波长 λ 有效 \lambda_{有效} λ有效和短波限 λ 0 \lambda_{0} λ0关系: λ 有效 = 1.35 λ 0 \lambda_{有效}=1.35\lambda_{0} λ有效=1.35λ0

吸收限:这里的 μ m \mu_m μm和λ应该连续变化,但在实际上 μ m \mu_m μm不是连续变化,在某些波长位置突然增加7-10倍,然后又随着λ的减小而减小。

吸收限和光电效应有关。

光电效应(Photoelectric Effect):

当入射X射线光子能量大于吸收体原子某壳层电子的结合能时,光子容易被电子吸收,获得能量的电子从内层逸出称为自由电子(光电子),原子处于相应的激发态。

光电效应消耗大量的入射能量,表现为吸收系数突增,对应的入射波长为吸收限。

荧光辐射(Fluorescent Radiation):

**荧光辐射(二次特征辐射):**由X射线激发产生的特征辐射。属于光致发光的萤光现象。

**荧光辐射的过程:**入射X射线光子能量足够大,把原子内层电子击出产生光电效应,被激出电子的原子处于不稳定激发态,外层电子向内跃迁辐射出一定波长的X射线。

**荧光辐射的应用:**在X射线衍射分析中,荧光辐射是有害的,因为它会增加衍射花样的背底;但在元素分析过程中,它又是X射线荧光光谱分析的基础。

激发荧光辐射的能量条件:欲激发荧光辐射,比如激发K系的荧光辐射,要求入射X射线光子能量必须≥从原子中击出一个K层电子所需做的功: W K = h ν K = h c / λ K W_{K}=h\nu_K=hc/\lambda_K WK=hνK=hc/λK。一旦产生X射线荧光辐射,入射X射线能量杯大量吸收,所以 λ K \lambda_K λK也被称为被照射物质因产生荧光辐射而大量吸收入射X射线的吸收限。

激发荧光辐射的吸收限的影响因素:不同元素,吸收限不同【Z越大,同名(K、L、M)吸收限波长越短,根据 1 λ = K 2 ( Z − σ ) \sqrt{\frac1{\lambda}}=K_2(Z-\sigma) λ1 =K2(Zσ)

**荧光X射线的能量和波长:**荧光辐射光子的能量一定小于激发它产生的入射X射线的能量,所以荧光辐射光子的波长一定大于入射X射线的波长。

俄歇效应(Auger Effect):

**俄歇效应的过程:**原子内壳层的电子被入射X射线激发形成一个空位,外壳层电子向内壳层空位跃迁并释放出能量,这个能量一方面以光电子的形式释放出来形成荧光辐射;另一方面还可以转移到另一个电子,导致其从原子中激发出来,这个被激发的电子叫俄歇电子,这个过程称为俄歇效应。

**俄歇电子的能量:**原子初始产生空位的壳层能态和跃迁壳层能态以及逸出电子所处壳层的终止能态差。能量是特征的,和入射X射线波长无关,和产生俄歇效应原子种类有关。

**俄歇电子应用:**俄歇电子一般能量很低,只有表面几层原子所产生的俄歇电子才能逃逸出物质表面,所以俄歇电子谱仪是典型的表面成分分析设备。轻元素产生俄歇电子的概率比较大,比重元素强烈,故俄歇效应用于表面轻元素的分析。

(2)X射线吸收效应的应用
①吸收限的应用

1.根据试样化学成分选择阳极靶材

基本原则:入射射线尽可能少地激发样品的荧光辐射。

要求:入射线的波长略长于试样的 λ K \lambda_K λK或者小很多。

X射线管所选靶材原子序数比试样原子序数稍小或者大很多。

Z 靶 ≤ Z 样 + 1 Z_{靶}\leq Z_{样}+1 ZZ+1 Z 靶 > > Z 样 Z_{靶}>> Z_{样} Z>>Z

如果试样中含有多种元素,应根据含量较多的几种元素里原子序数最小的元素来选择。

②滤片选择

X射线产生的K系谱线包括 K α , K β K_{\alpha},K_{\beta} Kα,Kβ谱线,为了获得单一谱线的衍射条纹,需要滤掉另一种谱线。需要找到一种材料,其吸收限 λ K \lambda_K λK正好位于X射线管产生的 K α , K β K_{\alpha},K_{\beta} Kα,Kβ谱线波长之间,尽量贴近 K α K_{\alpha} Kα,即== λ K β ( 光源 ) < λ K ( 滤波片) < λ K α ( 光源 ) \lambda_{K_{\beta}}(光源)<\lambda_K(滤波片)<\lambda_{K_{\alpha}}(光源) λKβ(光源)<λK(滤波片)<λKα(光源)==

把此材料置于光路中,滤片强烈地吸收 K β K_{\beta} Kβ线,对 K α K_{\alpha} Kα吸收很少,即可得到单色的 K α K_{\alpha} Kα辐射。

滤片选择原则为:滤片原子序数比阳极靶材系数小1/2

相关文章:

【笔记】X射线物理基础

一、X射线衍射分析简史 1895年X射线发现 1896 年 2 月对骨折的观察&#xff1a;G.和 E. Frost是第一个使用 X 射线进行医疗用途 1897 年法国海关官员的行李扫描。 X射线衍射理论1 X射线衍射理论2 元素的特征X射线 X射线光电子的应用 电磁波的粒子属性 X射线层析成像法 X-ray…...

Vue3与Flask后端Demo

文章目录 准备工作Flask 后端设置Vue3 前端设置跨域问题测试 准备工作 安装开发环境 安装 Python&#xff08;推荐 Python 3.8 或更高版本&#xff09;。安装 Node.js&#xff08;推荐 LTS 版本&#xff09;。安装 PyCharm&#xff08;用于 Flask 开发&#xff09;和 VSCode&am…...

第一本RAG书籍《大模型RAG实战》出版!

随着ChatGPT的爆火&#xff0c;推动了新一轮的AI技术进步。但大模型自身存在幻觉、知识更新难等问题&#xff0c;阻碍了其直接进行落地应用。RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术将LLM与文本信息检索相结合&#xff0c;解决了在一些场景下模型知识不…...

Pandas -----------------------基础知识(四)

自定义函数 Series 加载数据 import pandas as pd df pd.DataFrame({Age: [20, 25, 30, 35, 40]}) df # 目标: 让 Age 列 的每个元素 num1 num2 def add_nums(x,num1,num2):return x num1 num2 df[Age].apply(add_nums,num1 2,num2 3) 法二 df[Age].apply(lambda x ,num1…...

鼎阳加油-IOC关键技术问题的解决记

鼎阳SDS6204示波器EPICS IOC的搭建-CSDN博客 这款示波器在labview下工作的很好&#xff0c;以前搭建逐束团3D系统时连续几个月不间断的工作连接从没断过线&#xff0c;并做过速率测试&#xff0c;单通道时10Hz的波形更新速率都可以达到&#xff1a; 鼎阳SDS6204示波器波形读取…...

【HarmonyOS】TaskPool非阻塞UI

TaskPool方法不会阻塞UI&#xff0c;如果做上传图片的功能加载Loading记得使用TaskPool&#xff0c;Promise、Async/Await都会阻塞UI 【引言】 发现Promise可能会阻塞UI&#xff0c;尝试使用async或await&#xff0c;但发现它们仍然会导致阻塞。后来看到chaoxiaoshu回复的Tas…...

关于使用/bin/sh -c 用于Dockerfile的Entrypoint的问题

问题描述 相同的dockerfile&#xff0c;使用不同的基础镜像制作镜像1号进程不相同 ENTRYPOINT都是&#xff1a; /bin/sh -c pre-start.sh && myblockserver 的形式 就是执行多个命令命令&#xff0c;最后的一个命令是阻塞的 镜像1: 1号进程是 /bin/sh -c pre-start…...

JS---获取浏览器可视窗口的尺寸

innerHeight 和 innerWidth 这两个方法分别是用来获取浏览器窗口的宽度和高度&#xff08;包含滚动条的&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…...

对抗攻击方法详解:梯度攻击、转移攻击与模型集成攻击

对抗攻击方法详解&#xff1a;梯度攻击、转移攻击与模型集成攻击 近年来&#xff0c;随着深度学习模型在各个领域取得惊人突破&#xff0c;对抗攻击&#xff08;Adversarial Attack&#xff09; 逐渐成为研究热点。对抗攻击旨在通过在输入数据上施加精心设计的微小扰动&#x…...

GPU并行效率问题——通过MPS提升GPU计算收益

GPU并行效率问题——通过MPS提升GPU计算收益_gpu mps-CSDN博客...

patch 命令:补丁的应用

一、命令简介 ​diff​ 和 patch​ 是传统的文件比较和应用差异的工具&#xff0c;而 git​ 是一个更现代、功能更全面的版本控制系统&#xff0c;它内置了 diff​ 和 patch​ 的功能&#xff0c;并且提供了更多用于代码管理和协作的高级特性。 diff, patch 和 git 之间的关系…...

仓颉编程语言4,遇到BUG求助

本来准备整仓颉链接Mysql数据库。参考&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 这种方式是拿mysql官方的dll&#xff0c;编译一下&#xff0c;然后再封装成仓颉数据库驱动。这种方式不够逼格&#xff0c;所以准备解析mysql网络协议&#xff0c;从0开始写…...

SpringIOCDI

1.IOC 1.1.IOC概述 IOC&#xff1a; Inversion Of Control&#xff0c;简称IOC&#xff0c;也被称为控制反转。对象的创建权由程序员主动创建转移到容器&#xff0c;由容器创建、管理对象&#xff0c;这种思想称为控制反转。这个容器称为IOC容器或Spring容器被IOC容器创建、管…...

单细胞Seruat和h5ad数据格式互换(R与python)方法学习和整理

SeruatV4数据转化为h5ad格式数据 1、导入(R) rm(list ls()) library(Seurat) library(qs) library(reticulate) library(hdf5r) library(sceasy) library(BiocParallel) register(MulticoreParam(workers 4, progressbar TRUE)) scRNA <- qread("sc_dataset.qs&q…...

分布式难题-三座大山NPC

文章目录 1. 三座大山 NPC 的概念2. NPC 细分理解2.1. Network Delay 网络延迟2.2. Process Pause 进程暂停2.3. Clock Drift 时钟漂移Is the Algorithm Asynchronous? 本文参考&#xff1a; RedLock红锁安全性争论&#xff08;上&#xff09; https://martin.kleppmann.com/…...

两个方法教你设置Excel密码,防止修改和复制Excel表格内容

EXCEL是一款功能强大的电子表格软件&#xff0c;广泛用于各个地方。然而&#xff0c;对于一些重要的表格文件需要通过设置密码来限制大就的修改和复制权限。因而&#xff0c;对于一个EXCEL表格&#xff0c;通过密码设置大家有访问表格的权限&#xff0c;但无法修改数据的权限。…...

Java解析Excel文件

目录 背景 技术选型 开源Java框架选型 1. Apache POI 2. EasyExcel 收费Java框架选型 1. Spire.XLS for java 2. Aspose 总结 背景 在低代码产品的研发过程中&#xff0c;为用户提供数据导入导出的能力时&#xff0c;无法避免的就是对EXCEL解析的能力&#xff0c;所以本篇通过介…...

Require:基于雪花算法完成一个局部随机,全局离散没有热点切唯一的数值Id生成器。

【雪花算法】雪花算法&#xff08;Snowflake Algorithm&#xff09;是Twitter开源的用于生成唯一ID的算法&#xff0c;它可以在分布式系统中生成唯一的64位长整数ID。这种ID生成方式既保证了趋势递增&#xff0c;又保证了在不同数据中心、不同机器上生成的ID的唯一性。 符号位&…...

libevent - Macro function

TAILQ_INIT /** Tail queue functions.* 尾队列的头结点初始化为空队列。*/ #define TAILQ_INIT(head) do { \(head)->tqh_first NULL; \(head)->tqh_last &(head)->tqh_first; \ } while (/*CONSTCOND*/0)TAILQ_INIT 宏是一个用于初始化尾队列头部…...

408算法题leetcode--第17天

101. 对称二叉树 101. 对称二叉树思路&#xff1a;递归&#xff0c;对称即两个子树的左边和右边分别一样&#xff1b;一个子树是左中右遍历&#xff0c;另一个是右中左遍历&#xff1b;写的时候可以分三步&#xff0c;确定函数参数以及返回类型&#xff0c;确定终止条件&#…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…...