Docker 前瞻
一、namespace 指令
1.1 dd 命令
dd 命令用于读取、转换并输出数据。
dd 命令可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
语法
dd option
- if= 文件名:输入文件名,默认为标准输入。及指定源文件
- of= 文件名:输出文件名就,默认为标准输出。即指定目的文件。
- ibs= n:一次读入 n 个字节。
- obs=n:一次输出 n 个字节。
- bs=n:同时设置输入/输出的块大小为 bytes个字节
- cbz= n:一次转换 n 个字节,即指定转换缓冲区大小。
- skip=n:从输入文件开头跳过 n 个块后再开始复制(块大小等于 ibs)
- seek=n:从输出文件开头跳过 n 个块后再开始复制(块大小等于obs)
- count=n:仅拷贝 n 个块,块大小等于 ibs 指定的字节数
- conv=<关键字>:
1. block:把每一行转换为长度为 cbs,不足部分用空格填充
2. unblock:是每一行的长度都为 cbs, 不足的部分用空格填充
3. lcase:把大写字符转换为小写字符
4. ucase:把小写字符转换为大写字符
案例:
# 生成一个 大小为 8M 的镜像文件(指令不要带空格) dd if=/dev/zero of=test.img bs=8 count=1024#将 test.txt 文件中的所有英文字母转换为大写,然后转换成 test2.txt 文件 dd if=test.txt of=test2.txt conv=ucase
1.2 mkfs
再设备上创建 Linux 文件系统,俗称格式化。
语法:
mkfs option
-t fstype:指定要建立何种文件系统:如 ext3,ext4
案例:
#将 sda6 分区格式化为 ext4 格式 mkfs -t ext4 /dev/sda6#格式化镜像文件为 ext4 mkfs -t ext4 ./fdimage.img
1.3 df 命令
显示目前再 Linux 系统上的文件系统磁盘使用情况统计。
语法:
df [OPTION]... [FILE] ...
常见参数:
- -a, --all 包含所有具有 0 Blocks 的文件系统
- -h, --human-readable 使用人类可读的格式
- -H,--si 很想 -h, 但是 用1000 为单位,而不是1024
- -t, --type=TYPE 限制列出文件系统的 TYPE
- -T,--print-type 显示文件系统的形式
案例:
#查看磁盘使用情况 df -h #查看磁盘的系统类型 df -Th
1.4 mount
用于加载文件系统到指定的加载点,此命令常用于挂在光盘,使我们可以访问光盘中的数据,因为你将光盘插入到光驱中,Linux 是不会自动挂载,必须使用 Linux mount 命令 来手动完成挂在。
Linux系统下不同的目录可以挂在不同的分区和磁盘设备,它的目录和磁盘分区是分离的,可以自由组合(通过挂载)
不同的目录数据可以跨越不同的磁盘分区或者不同的磁盘设备
挂载的实质使为磁盘添加入口(挂载点)
语法:
mount [-l]
mount [-t vfstype] [-0 options] device dir
常见参数
- -l :显示已加载的文件系统列表
- -t:加载文件系统类型,支持常见的系统类型:ext3,ext4,iso9660 等,大部分可以不指定,mount 可以自己识别
- -o options 主要用来描述设备或档案的挂接方式
1. loop:用来把一个文件当成硬盘分区挂接上系统
2. ro:采用只读的方式挂接设备
3. rw:采用读写方式挂接设备 - device:要挂接(mount)的设备。
- dir:挂在点的目录
案例:
#将镜像挂载到/mnt/testext4 下面,需要确保挂载点也就是目录存在 mkdir -p /mnt/testext4 mount ./fdimage.img /mnt/testext4
1.5 unshare
unshare 主要能力是使用与父进程不共享的命名空间运行程序
语法:
unshare [options] program [arguments]
常用参数:
- -i,--ipc:不共享 IPC 空间
- -m,--mount:不共享 Mount 空间
- -n,--net:不共享 Net 空间
- -p,--pid:不共享 PID 空间
- -u,--uts:不共享 UTS 空间
- -U,--user:不共享用户
- -V,--version:版本查看
- --fork:执行 unshare 的进程 fork 一个新的子进程,再子进程里执行 unshare 传入的参数。
- --mount-proc:执行子进程前,优先将 proc 挂在过去。
案例1:hostname 隔离
# /bin/bash 主机隔离 unshare -u /bin/bash root@qingkai:/dockertest# hostname test root@qingkai:/dockertest# hostname test root@qingkai:/dockertest# exit exit root@qingkai:/dockertest# hostname qingkai
案例2:进程隔离
unshare --fork -p --mount-proc /bin/bash
1. 为什么需要
--fork
?当使用
unshare
创建新的 PID 命名空间时,若不指定--fork
,unshare
进程自身会直接进入新命名空间,并成为该命名空间的第一个进程(PID 1)。但此时存在一个问题:
父进程不在新命名空间中:原进程(如当前 shell)与新命名空间中的
unshare
进程形成父子关系,但父进程属于原命名空间,导致内核无法正确管理新命名空间的进程层级。报错
Cannot allocate memory
:内核需要确保新命名空间的进程树是自洽的(即父进程也在同一命名空间中),否则会因无法建立进程树而报内存错误。
--fork
的作用:
通过fork()
创建一个子进程(新的bash
进程),让该子进程成为新 PID 命名空间的第一个进程(PID 1),而原unshare
进程退出。这样新命名空间的进程树从子进程开始,符合内核的层级要求。
2.
--pid
参数的含义
隔离 PID 命名空间:
--pid
表示仅创建新的 PID 命名空间,其他命名空间(如mount
、network
、uts
等)与原系统共享。效果:
新命名空间中的进程拥有独立的 PID 编号(例如,
bash
进程的 PID 为 1)。其他资源(如文件系统、网络接口)仍与原系统共享。
3. 为什么需要
--mount-proc
?
/proc
是 Linux 的虚拟文件系统,存储了进程和系统信息(如/proc/PID
目录)。关键问题:
默认
/proc
不隔离:若不重新挂载/proc
,新 PID 命名空间中的进程仍会看到原系统的所有进程信息(即/proc
包含全局进程)。工具依赖
/proc
:ps
、top
等命令通过读取/proc
获取进程信息,若未隔离,这些工具会显示原系统的进程,而非当前命名空间的进程。
--mount-proc
的作用:
自动将/proc
文件系统挂载到新命名空间的/proc
目录,确保:
隔离的进程信息:仅显示当前 PID 命名空间及其子命名空间的进程。
挂载隔离:虽然未显式创建新的
mount
命名空间,但--mount-proc
会在新 PID 命名空间内重新挂载/proc
,使其独立于原系统
案例三:mount 隔离
#开启mount 隔离 unshare -m --fork /bin/bash #创建镜像文件 dd if=/mnt/zero of=test2.img bs=8k count=1024 #格式化文件 mkfs -t ext4 /docker/test2.img #创建要挂载的目录 mkdir -p /mnt/testext4 #将文件系统挂载到创建的目录上 mount -t ext4 /dockertest/test2.img ./testext4
二、pidstat
pidstat 是 systat 的一个命令,用于监控全部或指定进程的 CPU、内存、线程、IO等系统资源的占用情况。pidstat 第一次采样显示自系统开始的各项统计信息,后续采样将显示自上次命令后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
语法:
pidstat [选项] [<时间间隔>] [<次数>]
参数:
- -u:默认参数,显示各进程的 CPU 使用统计
- -r:显示各进程的内存使用统计
- -d:显示各进程的 IO 使用情况
- -p:指定进程号,ALL 表示所有进程
- -C:指定命令(stress 监控 stress 命令相关进程的状态)
- -l:显示命令名和所有参数
安装:
#ubuntu 卸载 apt remove sysstat -y #ubuntu 安装 apt install stsstat -y#centos 卸载 yum remove sysstat -y #centos 安装 yum install sysstat -y
三、stress
stress 是 Linux 的一个压力测试工具,可以对 CPU、Memory、IO、磁盘进行压力测试。
语法:
stress [OPTION [ARG]]
参数:
- -c,--cpu N:产生 N 个进程,每个进程都循环调用 sqrt 函数产生 CPU 压力
- -i,--io N:产生 N 个进程,每个进程循环调用 sync 将内存缓冲区内容写到磁盘上,产生 IO 压力。通过系统调用 sync 刷新内存缓冲区数据到磁盘中,以确保同步。如果缓冲区数据较少,写到磁盘中的数据也较少,不会产生 IO 压力。在 SSD 磁盘环境中尤为明显,很可能 iowait 总是 0,却因为大量调用 sync ,导致系统 CPU 使用率 sys 升高。
- -m
--vm N:产生 N 个进程,每个进程循环调用 malloc/free 函数分配和释放内存。
--vm-bytes B:指定分配内存的大小
--vm-keep:一直占用内存(默认是不断释放并重新分配内存) - -d
--hdd N:产生 N个不断执行 write 和 unlink 函数的进程(创建文件,写入内容、删除文件)
--hdd-bytes B:指定文件大小 - -t,--timeout N:在 N 秒后结束程序
- -q,--quiet:程序在运行的过程中不输出信息
安装:
#ubuntu 卸载
apt remove stress -y
#ubuntu 安装
apt install stress -y#centos 卸载
yum remove stress -y
#centos 安装
yum install stress -y
四、cgroup
4.1 信息查看
#查看当前系统操作系统版本
cat /etc/*release*
#版本查看
cat /proc/filesystems |grep cgroup
#cgroups 子系统查看
cat /proc/cgroups
#cgroups 挂载信息查看(cgroup2 on /sys/fs/cgroup type cgroup2)表示cgroup 挂载到了 /sys/fs/cgroup 目录
mount | grep cgroup
#查看一个当前进程的 cgroup 限制
cat /proc/$$/cgroup
#(0::/user.slice/user-0.slice/session-33754.scope)当前进程 cgroup信息在 cgroup 挂载目录中的/user.slice/user-0.slice/session-33754.scope
cgroup2 如何配置:
# 限制为 1 个核心的 20% echo "20000 100000" > cpu.max# 限制内存使用为 1GB echo "1073741824" > memory.max# 最多允许 100 个进程 echo "100" > pids.max
注意:cgroup 配置会继承父层级的限制。若当前配置信息不生效,可以返回上级目录,查看父目录的配置信息
4.2 使用 cgroups 对内存进行控制
#在 cgroup 挂载目录创建文件,作为限制模板
mkdir cgrouptest#限制 cpu 使用率为 50%
echo 50000 100000 > cpu.max#限制内存使用最大为 20 m 20*1024*1024
echo "20971520" > memory.max#将要限制的进程写入 cgroup.procs 中
echo 2603690 > cgroup.procs
我们可以使用如下命令验证 cgroup 是否生效
#不停的申请回收 100m 内存 stress --vm 1 --vm-bytes 100m #监控对应的进程 pidstat -C stress -p ALL -r 2 1000 #当我们把对应进程号加入 cgroup.procs 中,此时就会停止申请和释放内存
相关文章:
Docker 前瞻
一、namespace 指令 1.1 dd 命令 dd 命令用于读取、转换并输出数据。 dd 命令可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。 语法 dd option if 文件名:输入文件名,默认为标准输入…...
【maxENT】最大熵模型(Maximum Entropy Model)R语言实现
文章目录 一、相关package介绍1.1 dismo 包1.2 raster包1.3 常见问题与解决 二、代码示例 🟢🟠先看:【maxENT】最大熵模型(Maximum Entropy Model)介绍与使用(maxENT软件) ASCII文件太大&#…...
高负载WEB服务器--Tomcat
高负载WEB服务器–Tomcat Tomcat介绍 Tomcat 是一个开源的轻量级应用服务器,在 Java Web 应用开发中被广泛使用。 发展历程:Tomcat 最初由 Sun Microsystems 开发,后来成为 Apache 软件基金会的一个项目。它的发展与 Java 技术的发展密切相…...
分页查询列表每页1000条的优化
项目中有一个客户列表,要求每页显示1000条,并且字段很多,接口返回大概要10秒钟,进行优化. 原本逻辑:使用mybatisplus构建查询条件,分页查询客户表,查出数据库DO对象,然后for循环转化成回显的VO对象.在转化的过程中出现了查库代码,导致当每页条数1000时,每一个客户转化都需要查询…...
深入浅出一下Python面向对象编程的核心概念与实践应用
本篇技术博文摘要 🌟 本文系统讲解了Python面向对象编程的核心概念与实践应用。通过电商系统用户订单模拟、动态权限账户系统等案例,深入剖析了类与对象、属性方法、实例方法等基础要素。重点解析了__init__构造方法、__str__对象描述、__lt__比较运算符…...
2025阿里云AI 应用-AI Agent 开发新范式-MCP最佳实践-78页.pptx
2025阿里云AI 应用-AI Agent 开发新范式-MCP最佳实践,包含以下内容: 1、AI 应用架构新范式 2、云原生API网关介绍 3、云原生API网关底座核心优势 4、流量网关最佳实践 5、AI 网关代理 LLM 最佳实践 6、MCP网关最佳实践 7、MSE Nacos MCP Server 注册中心…...
github进阶使用教程
目录索引 一、基本内容 repository fork star codespaces issue 在一个仓库创建话题讨论,可以由仓库主人选择开始和结束话题的讨论 pull request(也称 pr) 协同其他仓库开发,请求仓库主人拉取自己的代码合并到仓库的主分支&…...
【C++】 —— 笔试刷题day_16
刷题_day16,继续加油啊 一、字符串替换 题目解析 这道题是一道简单的字符题目,题目给我们一个字符串A,和n表示A字符串的长度,再给出一个字符数组arg,m表示arg中是数据个数。 然我们在字符串A中找到%s然后替换成arg中的…...
5.3 GitHub订阅系统核心架构解密:高并发设计与SQLite优化实战
GitHub Sentinel 分析报告功能实现:订阅管理核心逻辑解析 关键词:GitHub API 订阅管理, SQLite 数据库设计, RESTful API 开发, 原子操作封装, 异常处理机制 1. 订阅管理功能架构设计 订阅管理模块采用分层架构设计,通过清晰的接口隔离实现高内聚低耦合: #mermaid-svg-bW…...
P5738 【深基7.例4】歌唱比赛
P5738 【深基7.例4】歌唱比赛 题目描述 n ( n ≤ 100 ) n(n\le 100) n(n≤100) 名同学参加歌唱比赛,并接受 m ( m ≤ 20 ) m(m\le 20) m(m≤20) 名评委的评分,评分范围是 0 0 0 到 10 10 10 分。这名同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩下 …...
从三次方程到复平面:复数概念的奇妙演进(三)
注:本文为 “复数 | 历史 / 演进” 相关文章。 因 csdn 篇幅限制分篇连载,此为第三篇。 生料,不同的文章不同的点。 机翻,未校。 Complex Numbers History: Complex numbers were first introduced by G. Cardano (1501-1576)…...
2025年七星棋牌跨平台完整源码解析(200+地方子游戏+APP+H5+小程序支持,附服务器镜像导入思路)
目前市面上成熟的棋牌游戏源码很多,但能做到平台全覆盖、地方玩法丰富、交付方式标准化的系统却不多。今天这套七星棋牌2023完整源码具备安卓/iOS/H5/微信小程序端四端互通能力,附带200多款地方子游戏,还配备了后台管理与自动热更系统&#x…...
从三次方程到复平面:复数概念的奇妙演进(四)
注:本文为 “复数 | 历史 / 演进” 相关文章合辑。 因 csdn 篇幅限制分篇连载,此为第四篇。 生料,不同的文章不同的点。 机翻,未校。 Complex number and its discovery history 复数及其发现历史 Wenhao Chen, †, Dazheng …...
UE5角色状态机中跳跃落地移动衔接问题
UE5系列文章目录 文章目录 UE5系列文章目录前言一、状态机设置二、主要蓝图 前言 先说说遇到的问题,在我按空格键跳跃落地以后,角色落地再按WSAD键移动就出现了画面中角色抽搐的情况 一、状态机设置 在Unreal Engine 5中创建角色时,处理跳…...
25软考中级*高项网课+历年真题+笔记+电子书+刷题【计算机软考】
两个月逆袭25年软考程序员?这份高效备考指南请收好 25软考中级*高项网课download 📂 软考中级科目备考资料介绍 ✅ 【01】2025 年软件测评师 聚焦软件测试全流程,涵盖 需求分析、测试设计、用例编写、缺陷管理 等核心技能。 📘 备…...
C++STL——容器-list(含模拟实现,即底层原理)(含迭代器失效问题)(所有你不理解的问题,这里都有解答,最详细)
目录 1.迭代器的分类 2.list的使用 2.1 list的构造 2.2 list iterator 2.3 list capacity 2.4 list element access 编辑 2.5 list modifiers 编辑2.5.1 list插入和删除 2.5.2 insert /erase 2.5.3 resize/swap/clear 编辑 2.6 list的一些其他接口…...
Linux系统编程之虚拟内存
概述 计算机内存是临时存储数据的地方,它比硬盘快得多,但容量有限。现代操作系统通过虚拟内存技术,使得每个进程都感觉自己独占整个地址空间,这不仅提高了安全性,也简化了内存管理。 物理内存:实际安装在计…...
笔试专题(八)
文章目录 平方数(数学)题解代码 DNA序列(固定长度的滑动窗口)题解代码 压缩字符串 (双指针 模拟)题解代码 chika和蜜柑 (top k问题 排序 pair)题解代码 平方数(数学&a…...
Linux:基础IO---软硬链接动静态库前置知识
序:上一个章节,我从硬件出发,由宏观到微观,由具体到抽象,围绕研究对象未被打开的文件来讲解,操作系统是如何对一个大块的磁盘进行管理的,从而引进inode的概念,加深了对文件的理解&am…...
Arm CPU安全通告:基于TrustZone的Cortex-M系统面临多重故障注入攻击
安全之安全(security)博客目录导读 目录 一、概述 二、致谢 三、参考文献Black Hat USA 2022 | Briefings Schedule 四、版本历史 一、概述 Arm注意到BlackHat 2022大会官网发布的演讲摘要《糟糕..!我又一次故障注入成功了!——如何突…...
测试第二课-------自动化测试
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
深入探索Linux开发工具:Vim与Yum
目录 引言 Vim:强大的文本编辑利器 Vim的基本概念 Vim的基本操作 Vim正常模式命令集 Vim末行模式命令集 Vim的配置 使用插件拓展Vim功能 Yum:便捷的Linux软件包管理器 注意事项 结语 引言 在Linux的世界里,高效的开发工具是提升生…...
玩转ChatGPT:使用深入研究功能梳理思路
一、写在前面 前我尝试用ChatGPT的Deep Research(深入研究)功能来梳理文献,效果相当不错。最近,谷歌的Gemini 2.5 Pro也推出了类似功能,从网络测评来看,其表现与ChatGPT不相上下,而且还可以免费…...
UE5蓝图实现打开和关闭界面、退出
Button_Back 和Button_Exit是创建的两个按钮事件。 1.Create Widget 创建界面(打开界面) 2.Add to Viewport 添加到视图 3.remove form Parent,Target:self 从父节点移除当前界面(关闭界面) 4.Quit Game 退…...
实现vlan间的通信
这是第一种方法(更推荐第三种) PC1划分为vlan10,PC2划分为vlan20,实现PC1和PC2之间通信很简单,我们只需将网关都设置好,将交换机的0/0/1、0/0/3设置成vlan10,0/0/2、0/0/4设置成vlan20…...
Linux上位机开发实践(opencv算法硬件加速)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 图像处理里面,opencv基本是一个标准模块。但是由于图像处理的特点,如果所有的算法都是cpu来做的话,效率会很低。…...
智慧社区数据可视化中枢平台——Axure全场景交互式大屏解决方案
在数字化治理的时代浪潮中,社区管理正面临数据碎片化、响应滞后、决策盲区等核心挑战。如何将分散的安防、环境、能源、民生服务等数据整合为可操作的智慧洞察?如何让冰冷的数字转化为社区管理者手中的决策利器?Axure智慧社区可视化大屏原型模…...
动态路由, RIP路由协议,RIPv1,RIPv2
动态路由 1、回顾 路由:从源主机到目标主机的过程 源主机发送数据给目标主机,源主机会查看自身的路由信息 如果目标主机是自己同网段,源主机查看的是直连路由 如果目标主机和自己不同网段,源主机查看的是静态路由、动态路由、默…...
C++:STL的常用容器(string/vector/deque/stack/queue/list/set/multiset/map/multimap)
程序员Amin 🙈作者简介:练习时长两年半,全栈up主 🙉个人主页:程序员Amin 🙊 P S : 点赞是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全…...
【unity游戏开发入门到精通——UGUI】Canvas画布组件
注意:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发——UGUI】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 一、Canvas画布组件1、Canvas组件用来干啥2、场景中可以有多个Canvas对象 二、…...
MyBatis 中 Mapper 传递参数的多种方法
# MyBatis Mapper 传递参数的多种方法及其优势 在使用 MyBatis 进行数据库操作时,Mapper 接口的参数传递是一个非常基础但又十分重要的部分。不同的参数传递方式适用于不同的场景,合理选择可以大大提高代码的可读性和维护性。本文将详细介绍几种常见的 …...
学习海康VisionMaster之平行线计算
一:进一步学习了 今天学习下VisionMaster中的平行线计算,这个是拟合直线的扩展应用,针对需要计算平行线的应用场合,可以方便的生成对应的另外一条平行线 二:开始学习 1:什么是平行线计算? 如果…...
MyBatis Mapper 传递参数的多种方法
1. 使用顺序传参法(不推荐) 方法描述 直接通过位置来引用参数,例如 ( arg0 arg1 … ) 或者 (param1, param2…)。 示例代码 List<User> selectUsers(String name, Integer age); <...
探索 Vue 3 响应式系统:原理与实践
Vue 3 响应式系统凭借 Proxy 的优势,提供更强大、灵活的响应式方案。理解其原理与 API,能写出更高效、可维护的 Vue 应用。不断探索其细节,是进阶 Vue 开发的关键。 探索 Vue 3 响应式系统:原理与实践 Vue 3 的响应式系统是其核…...
【LeetCode 热题100】二叉树构造题精讲:前序 + 中序建树 有序数组构造 BST(力扣105 / 108)(Go语言版)
🌱 二叉树构造题精讲:前序 中序建树 & 有序数组构造 BST 本文围绕二叉树的两类构造类题目展开解析: 从前序与中序遍历序列构造二叉树 将有序数组转换为二叉搜索树 我们将从「已知遍历构造树」和「平衡构造 BST」两个角度,拆…...
开源语音文本自动对齐模型:Llama-OuteTTS-1.0-1B
OuteTTS 1.0 介绍与使用指南 1. 重要采样考虑 重复惩罚机制:OuteTTS 1.0 要求对最近的64个token应用重复惩罚,而不是对整个上下文窗口。对整个上下文窗口进行惩罚会导致输出质量下降。推荐工具:llama.cpp 和 EXL2 提供了可靠的输出质量&…...
基于SpringBoot的电影订票系统(源码+数据库+万字文档+ppt)
504基于SpringBoot的电影订票系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览系统电影动态。 资讯信息:获取有关电影行业的新闻和资讯。 电影信息:查看电影的详细信息和排片情况。 公告信…...
基于SpringBoot汽车零件商城系统设计和实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
Python数据可视化:从脚本到海报级图表
Python数据可视化:从脚本到海报级图表 引言 在数据分析和科学计算领域,Python 是一种强大且灵活的工具。本文将带您了解如何使用 Python 进行数据可视化,从简单的脚本到生成高质量的海报级图表。我们将重点介绍如何使用 Matplotlib 库来创建、保存和优化图表,以便在各种场…...
使用Java截取MP4文件图片的技术指南
在多媒体处理中,从视频文件中截取图片是一个常见的需求。本文将详细介绍如何使用Java结合FFmpeg实现从MP4文件中截取图片的功能。我们将通过几种不同的方法来实现这一目标,包括直接调用FFmpeg命令行工具、使用JavaCV库以及使用JAVE库。 环境准备 在开始…...
C++(初阶)(十一)——list
十一,list 带头循环双向链表。 遍历方式:迭代器,不再支持operate[],operate[]适用于底层是数组的结构。 remove删除值,如果有多个相同的值,都会删除。 接口介绍 下面会介绍list的一些接口 构造 构造…...
leetcode 139. Word Break
这道题用动态规划解决。 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet;for(string& word:wordDict){wordSet.insert(word);}int s_len s.size();//s的下标从1开始起算,dp[j]…...
5.1、深度剖析 docker run 命令:原理阐释与数据持久化实践探究
5.1、深度剖析 docker run 命令:原理阐释与数据持久化实践探究 1、更换国内yum源2、更换国内docker源3、卸载旧版docker4、docker安装5、镜像加速器6、镜像下载7、docker run命令交互式启动-it非交互式后台运行其他参数8、持久化存储目录挂载数据卷挂载数据同步1、更换国内yum…...
【AI大模型】大模型RAG技术Langchain4j 核心组件深入详解
目录 一、前言 二、Langchain4j概述 2.1 Langchain4j 是什么 2.2 Langchain4j 主要特点 2.3 Langchain4j 核心组件 2.4 Langchain4j 核心优势 三、Langchanin4j组件应用实战 3.1 前置准备 3.1.1 导入如下依赖 3.1.2 获取apikey 3.1.3 获取官方文档 3.2 聊天组件 3.…...
【Flink运行时架构】重要概念
前面我们讲了Flink运行时的核心组件和提交流程,但有些细节需要进一步的思考,一个具体的作业是怎样从编写的代码转换成TaskManager可以执行的任务的呢?JobManager在收到提交的作业之后,又是如何确定总共有多少任务、需要配置多少资…...
oracle命令上下左右键无法使用如何解决?
1、问题如图 2、解决办法 (1) 安装readline yum -y install readline* (2)安装 rlwrap ##下载 wget http://files.cnblogs.com/files/killkill/rlwrap-0.30.tar.gz.zip ##解压 tar -xzvf rlwrap-0.30.tar.gz.zip ##编译安装 ./configure make &&…...
[文献阅读] chinese-roberta Pre-Training With Whole Word Masking for Chinese BERT
文献信息:Pre-Training With Whole Word Masking for Chinese BERT | IEEE Journals & Magazine | IEEE Xplore 哈工大和科大讯飞联合发表的用于中文NLP任务的基于BERT的改进模型,在中文NLP任务取得了最先进的性能。 摘要 原本的BERT使用随机掩蔽的…...
QML ListView 与 C++ 模型交互
在 Qt 中,QML 的 ListView 可以与 C 模型进行交互,这是实现复杂数据展示和业务逻辑的常见方式。以下是几种主要的交互方法: 1. 使用 QAbstractItemModel 派生类 这是最强大和灵活的方式,适合复杂数据结构。 C 端实现 cpp // …...
使用SSH解决在IDEA中Push出现403的问题
错误截图: 控制台日志: 12:15:34.649: [xxx] git -c core.quotepathfalse -c log.showSignaturefalse push --progress --porcelain master refs/heads/master:master fatal: unable to access https://github.com/xxx.git/: The requested URL return…...
MacOs下解决远程终端内容复制并到本地粘贴板
常常需要在服务器上捣鼓东西,同时需要将内容复制到本地的需求。 1-内容是在远程终端用vim打开,如何用vim的类似指令达到快速复制到本地呢? 假设待复制的内容: #include <iostream> #include <cstring> using names…...