【jstack查询线程信息】1.对比下arthas的thread 和jvm指令
1)jps拿到进程号
2)jstack <pid> > <xxx.txt> // jstack作用:分析线程信息,死循环,死锁
jstack 23647 > 23647.txt
Found 1 deadlock
3)对比:arthas查看线程信息
[arthas@68751]$ thread -n 10
"MainWorker" Id=69 cpuUsage=72.29% deltaTime=156ms time=91183068ms WAITINGat app//com.elex.billion.icefire.game.biz.service.impl.robot.RobotServiceImpl.lambda$testFightTroop$0(RobotServiceImpl.java:493)at app//com.elex.billion.icefire.game.biz.service.impl.robot.RobotServiceImpl$$Lambda$979/0x000000080111f440.test(Unknown Source)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.lambda$findObjects$4(AbstractSceneObjectCellContainer.java:342)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer$$Lambda$980/0x000000080111ec40.accept(Unknown Source)at java.base@11.0.16.1/java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4772)at java.base@11.0.16.1/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1085)at app//com.elex.icefire.scene.object.SceneObjectContainer.forEach(SceneObjectContainer.java:183)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.lambda$forEachObjectInRect$0(AbstractSceneObjectCellContainer.java:171)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer$$Lambda$981/0x000000080111e040.accept(Unknown Source)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.forEachCellInRect(AbstractSceneObjectCellContainer.java:122)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.forEachCellInRect(AbstractSceneObjectCellContainer.java:157)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.forEachObjectInRect(AbstractSceneObjectCellContainer.java:171)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.forEachObjectInBoundingBox(AbstractSceneObjectCellContainer.java:188)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.findObjects(AbstractSceneObjectCellContainer.java:341)at app//com.elex.icefire.scene.object.AbstractSceneObjectCellContainer.findObjects(AbstractSceneObjectCellContainer.java:323)at app//com.elex.billion.icefire.game.biz.service.impl.robot.RobotServiceImpl.testFightTroop(RobotServiceImpl.java:493)at app//com.elex.billion.icefire.game.biz.service.impl.robot.instance.FightNpcInstance.onInstanceTick(FightNpcInstance.java:162)at app//com.elex.billion.icefire.game.biz.service.impl.robot.RobotServiceImpl.playerForcedLowTick(RobotServiceImpl.java:133)at app//com.elex.billion.icefire.game.biz.service.flow.LogicServiceManager.playerForcedLowTick(LogicServiceManager.java:268)at app//com.elex.billion.icefire.game.biz.service.impl.player.PlayerTickHandler.tick(PlayerTickHandler.java:39)at app//com.elex.billion.icefire.game.biz.service.impl.player.PlayerTickHandler.tick(PlayerTickHandler.java:14)at app//com.elex.billion.icefire.game.biz.common.AbstractTickerUnitManager.tick(AbstractTickerUnitManager.java:97)at app//com.elex.billion.icefire.game.biz.model.world.World.tick(World.java:190)at app//com.elex.billion.icefire.game.biz.exec.MainTask.run(MainTask.java:83)at app//com.elex.billion.icefire.game.biz.exec.MainWorker.execute(MainWorker.java:55)at app//com.elex.framework.core.thread.SingleThreadTaskWorker.run(SingleThreadTaskWorker.java:158)at app//com.elex.framework.core.thread.NamedRunnable.run(NamedRunnable.java:65)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base@11.0.16.1/java.lang.Thread.run(Thread.java:834)"AsyncOperationServiceImpl-thread-26" Id=198 cpuUsage=51.81% deltaTime=112ms time=405798ms RUNNABLEat java.base@11.0.16.1/java.net.SocketInputStream.socketRead0(Native Method)at java.base@11.0.16.1/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)at java.base@11.0.16.1/java.net.SocketInputStream.read(SocketInputStream.java:168)at java.base@11.0.16.1/java.net.SocketInputStream.read(SocketInputStream.java:140)at app//com.mongodb.internal.connection.SocketStream.read(SocketStream.java:109)at app//com.mongodb.internal.connection.SocketStream.read(SocketStream.java:131)at app//com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:648)at app//com.mongodb.internal.connection.InternalStreamConnection.receiveMessageWithAdditionalTimeout(InternalStreamConnection.java:513)at app//com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:356)at app//com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:280)at app//com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:100)at app//com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:490)at app//com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:71)at app//com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:255)at app//com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:202)at app//com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:118)at app//com.mongodb.internal.operation.MixedBulkWriteOperation.executeCommand(MixedBulkWriteOperation.java:431)at app//com.mongodb.internal.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:251)at app//com.mongodb.internal.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:76)at app//com.mongodb.internal.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:194)at app//com.mongodb.internal.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:185)at app//com.mongodb.internal.operation.OperationHelper.withReleasableConnection(OperationHelper.java:620)at app//com.mongodb.internal.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:185)at app//com.mongodb.internal.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:76)at app//com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:195)at app//com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1009)at app//com.mongodb.client.internal.MongoCollectionImpl.executeUpdate(MongoCollectionImpl.java:993)at app//com.mongodb.client.internal.MongoCollectionImpl.updateOne(MongoCollectionImpl.java:578)at app//com.elex.billion.icefire.game.biz.service.impl.db.DBService.doUpdateOneEntity(DBService.java:252)at app//com.elex.billion.icefire.game.biz.service.impl.db.DBAsyncSave.saveDB(DBAsyncSave.java:127)at app//com.elex.billion.icefire.game.biz.service.impl.db.DBAsyncSave.run(DBAsyncSave.java:108)at app//com.elex.billion.icefire.game.biz.service.impl.AsyncOperationServiceImpl.internalAsyncRunner(AsyncOperationServiceImpl.java:128)at app//com.elex.billion.icefire.game.biz.service.impl.AsyncOperationServiceImpl.lambda$execute$0(AsyncOperationServiceImpl.java:84)at app//com.elex.billion.icefire.game.biz.service.impl.AsyncOperationServiceImpl$$Lambda$599/0x0000000800cfac40.run(Unknown Source)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base@11.0.16.1/java.lang.Thread.run(Thread.java:834)"So-Worker-BigWorld-t8" Id=236 cpuUsage=43.67% deltaTime=94ms time=21315607ms WAITING on java.util.concurrent.locks.ReentrantLock$NonfairSync@213dd41dat java.base@11.0.16.1/jdk.internal.misc.Unsafe.park(Native Method)- waiting on java.util.concurrent.locks.ReentrantLock$NonfairSync@213dd41dat java.base@11.0.16.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)at java.base@11.0.16.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)at java.base@11.0.16.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:917)at java.base@11.0.16.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1240)at java.base@11.0.16.1/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:267)at app//ch.qos.logback.core.OutputStreamAppender.writeBytes(OutputStreamAppender.java:200)at app//ch.qos.logback.core.OutputStreamAppender.writeOut(OutputStreamAppender.java:193)at app//ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:228)at app//ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)at app//ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:85)at app//ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)at app//ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:272)at app//ch.qos.logback.classic.Logger.callAppenders(Logger.java:259)at app//ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:426)at app//ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:386)at app//ch.qos.logback.classic.Logger.info(Logger.java:596)at app//com.elex.service.conf.model.fight.GameFormula.baseAttack(GameFormula.java:224)at app//com.elex.service.conf.model.fight.GameFormula.attack(GameFormula.java:242)at app//com.elex.icefire.scene.object.model.skill.effect.SSE_Hurt.castToTarget(SSE_Hurt.java:99)at app//com.elex.icefire.scene.object.model.skill.effect.SSE_Hurt.castTo(SSE_Hurt.java:53)at app//com.elex.icefire.scene.object.model.skill.effect.AbstractSceneSkillEffect.castTo(AbstractSceneSkillEffect.java:272)at app//com.elex.icefire.scene.object.model.skill.SceneNormalAttackSkill.attack(SceneNormalAttackSkill.java:44)at app//com.elex.icefire.scene.object.model.SceneBattle.normalAttack(SceneBattle.java:681)at app//com.elex.icefire.scene.object.model.SceneBattle.action1(SceneBattle.java:596)at app//com.elex.icefire.scene.object.model.SceneBattle.updateAction(SceneBattle.java:497)at app//com.elex.icefire.scene.ticker.SOT_Battle.lambda$updateObjects$4(SOT_Battle.java:82)at app//com.elex.icefire.scene.ticker.SOT_Battle$$Lambda$998/0x000000080115dc40.accept(Unknown Source)at java.base@11.0.16.1/java.lang.Iterable.forEach(Iterable.java:75)at app//com.elex.billion.icefire.core.thread.ThreadUtils.listObjectAction(ThreadUtils.java:79)at app//com.elex.billion.icefire.core.thread.ThreadUtils.lambda$forEach$3(ThreadUtils.java:55)at app//com.elex.billion.icefire.core.thread.ThreadUtils$$Lambda$902/0x0000000800fb3c40.run(Unknown Source)at java.base@11.0.16.1/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base@11.0.16.1/java.lang.Thread.run(Thread.java:834)"So-Worker-BigWorld-t4" Id=232 cpuUsage=34.88% deltaTime=75ms time=21301342ms WAITING on java.util.concurrent.locks.ReentrantLock$NonfairSync@213dd41dat java.base@11.0.16.1/jdk.internal.misc.Unsafe.park(Native Method)- waiting on java.util.concurrent.locks.ReentrantLock$NonfairSync@213dd41dat java.base@11.0.16.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)at java.base@11.0.16.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)at java.base@11.0.16.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:917)at java.base@11.0.16.1/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1240)at java.base@11.0.16.1/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:267)at app//ch.qos.logback.core.OutputStreamAppender.writeBytes(OutputStreamAppender.java:200)at app//ch.qos.logback.core.OutputStreamAppender.writeOut(OutputStreamAppender.java:193)at app//ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:228)at app//ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)at app//ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:85)at app//ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)at app//ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:272)at app//ch.qos.logback.classic.Logger.callAppenders(Logger.java:259)at app//ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:426)at app//ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:386)at app//ch.qos.logback.classic.Logger.info(Logger.java:596)at app//com.elex.service.conf.model.fight.GameFormula.attack(GameFormula.java:269)at app//com.elex.icefire.scene.object.model.skill.effect.SSE_Hurt.castToTarget(SSE_Hurt.java:99)at app//com.elex.icefire.scene.object.model.skill.effect.SSE_Hurt.castTo(SSE_Hurt.java:53)at app//com.elex.icefire.scene.object.model.skill.effect.AbstractSceneSkillEffect.castTo(AbstractSceneSkillEffect.java:272)at app//com.elex.icefire.scene.object.model.skill.SceneNormalAttackSkill.attack(SceneNormalAttackSkill.java:44)at app//com.elex.icefire.scene.object.model.SceneBattle.normalAttack(SceneBattle.java:681)at app//com.elex.icefire.scene.object.model.SceneBattle.action1(SceneBattle.java:596)at app//com.elex.icefire.scene.object.model.SceneBattle.updateAction(SceneBattle.java:497)at app//com.elex.icefire.scene.ticker.SOT_Battle.lambda$updateObjects$4(SOT_Battle.java:82)at app//com.elex.icefire.scene.ticker.SOT_Battle$$Lambda$998/0x000000080115dc40.accept(Unknown Source)at java.base@11.0.16.1/java.lang.Iterable.forEach(Iterable.java:75)at app//com.elex.billion.icefire.core.thread.ThreadUtils.listObjectAction(ThreadUtils.java:79)at app//com.elex.billion.icefire.core.thread.ThreadUtils.lambda$forEach$3(ThreadUtils.java:55)at app//com.elex.billion.icefire.core.thread.ThreadUtils$$Lambda$902/0x0000000800fb3c40.run(Unknown Source)at java.base@11.0.16.1/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base@11.0.16.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base@11.0.16.1/java.lang.Thread.run(Thread.java:834)
4)jvm命令快速查看是否有死锁
可以看出来,我主要想看下是否有死锁情况,此时我用arthas的jvm命令看的会更加清楚:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------THREAD
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------COUNT 277DAEMON-COUNT 108PEAK-COUNT 279STARTED-COUNT 474DEADLOCK-COUNT 0 // 所以暂时是没有死锁的
相关文章:
【jstack查询线程信息】1.对比下arthas的thread 和jvm指令
1)jps拿到进程号 2)jstack <pid> > <xxx.txt> // jstack作用:分析线程信息,死循环,死锁 jstack 23647 > 23647.txt Found 1 deadlock 3)对比:arthas查看线程信息 [arthas68751]$ thread -n 10 "MainWorker" Id69 cpuUsage72.29% deltaTime156ms …...
苦瓜书盘官网,免费pdf/mobi电子书下载网站
苦瓜书盘(kgbook)是一个专注于提供6英寸PDF和MOBI格式电子书的免费下载平台,专为电子阅读器用户设计。该平台为用户提供了丰富的电子书资源,涵盖文学、历史、科学、技术等多个领域,旨在打造一个全面的电子书资源库。用…...
【AI】AI开源IDE:CLine源码分析报告
1. 源码位置: CLine 是一个开源的 VSCode 插件,其完整源码托管在 GitHub 的 cline/cline 仓库中。这个仓库包含 CLine 的核心逻辑(TypeScript 编写),包括与 LLM 的对话控制、工具调用接口,以及 VSCode 插件…...
Nacos学习笔记-占位符读取其他命名空间内容
Nacos当前命名空间下的配置文件需要跨命名空间读取其他配置文件的内容。可以先通过Nacos提供的API接口获取配置文件内容,然后解析数据将其放入环境的PropertySource中。 相关依赖包 <!-- Nacos依赖包 --> <dependency><groupId>com.alibaba.clo…...
HarmonyOS 音频录制与播放模块
HarmonyOS 音频录制与播放模块 1.模块功能概览 麦克风权限动态检测与申请音频录制功能(支持参数配置)音频波形实时可视化(暂时未完善,先凑合看,后续会完善)录音文件播放功能 2.权限检测流程 1.代码实现…...
小白学Agent技术[4](Agent设计模式)
文章目录 Agent设计模式Zero shotFew shot应用场景 技术特性对比ReAct模式ReAct模式简介ReAct模式举例ReAct模式实现 Plan and Solve模式实现原理 Reason without Observation模式LLMCompiler模式实现原理 Basic ReflectionBasic Reflection原理 Reflexion 模式Reflexion 模式原…...
Google参数逆向 谷歌搜索
背景 从2025年1月15日开始,Google强制用户开启JavaScript才能使用Google搜索功能。 由于此前业务需要调用Google搜索功能去寻找目标资源进行下载,Google的改版导致整条产线全部瘫痪,急需解决方案。 业务每日需要Google搜索数百万次 临时解决方…...
OneM2M:全球性的物联网标准-可应用于物联网中
OneM2M 是一个全球性的物联网(IoT)标准,旨在为物联网设备和服务提供统一的框架和接口,以实现设备之间的互操作性、数据共享和服务集成。OneM2M 由多个国际标准化组织(如 ETSI、TIA、TTC、ARIB 等)共同制定,目标是解决物联网领域的碎片化问题,提供一个通用的标准,支持跨…...
MySQL环境搭建和基本操作
前言 MySQL是现在最为流行的数据库,而且是开源的,任何人都可以在Internet下载,进行安装。 MySQL环境搭建 一、软件包安装 MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司…...
【GIT】non-fast-forward错误
遇到 non-fast-forward 错误时,通常是因为远程仓库有本地尚未包含的提交(如远程仓库初始化时自动生成的 README.md 等文件)。以下是分步解决方案: 1. 拉取远程更改并合并历史 git pull origin master --allow-unrelated-historie…...
深入了解Linux —— 调试程序
前言 我们已经学习了linux下许多的工具,vim、gcc、make/makefile等; 已经能够在linux写代码,并且进行编译运行,让程序在linux下跑起来。 但是,如果我们在写代码的时候遇见了错误;但是我们并不知道错误在哪&…...
JVM - 3.垃圾回收
1.垃圾收集的经典问题 1.哪些内存需要回收2.什么时候回收3.如何回收1.你知道哪几种垃圾回收器,各自的优缺点,重点讲一下cms和g12.JVM GC算法有哪些,目前的JDK版本采用什么回收算法3.G1回收器的回收过程 1.Java中垃圾的定义(Garbag…...
vs code 设置字体颜色
修改setting.json文件 {"remote.SSH.remotePlatform": {"ubuntu": "linux"},// "workbench.colorTheme": "One Dark Pro",// "editor.semanticTokenColorCustomizations": {// },"editor.semanticTokenColo…...
MoonSharp 文档一
目录 1.Getting Started(入门手册) 步骤1:在 IDE 中引入 MoonSharp 步骤2:引入命名空间 步骤3:调用脚本 步骤4:运行代码 2.Keeping a Script around(保留一个脚本) 步骤1:复现前教程所有操作 步骤2:改为创建Script对象 步骤3:访问全局环境 步骤4:直接调用…...
Unity3D 图形渲染(Graphics Rendering)详解
前言 Unity3D 是一款广泛使用的游戏引擎,其图形渲染系统是开发者创建高质量视觉效果的核心。本文将深入探讨 Unity3D 的图形渲染管线、渲染技术、以及如何通过代码实现自定义渲染效果。 对惹,这里有一个游戏开发交流小组,大家可以点击进来一…...
计算机视觉图像点运算【灰度直方图均衡化图形界面实操理解 +开源代码】
对一个数字图像处理系统来说,一般的处理过程为三个步骤:图像预处理、特征抽取、图像识别和分析。图像的点运算就是预处理过程中的重要一步,点运算是对图像的灰度级进行变换。 图像点运算概念 点运算是指对图像的每个像素依次进行相同的灰度变…...
在Windows 7操作系统,基于llama.cpp本地化部署 deepseek-r1模型的方法 2025-02-08
一、概述 现在已经是大模型时代。 个人认为,deepseek效果惊艳,大模型已进入实用阶段。 有些电脑,由于种种原因,还在用 Windows 7, Windows XP 等操作系统。 为了让这些电脑用上大模型,本教程在 llama.c…...
力扣146 - LRU缓存
视频讲解 哈希 双向链表 为什么要用双向链表? 快速删除节点(O(1)) 如果是单链表的话,删除一个节点时,需要从头遍历,找到前驱节点,才能修改 prev->next,导致 O(n)…...
C++ 算法竞赛STL以及常见模板
目录 STL /*═══════════════ Vector ═══════════════*/ /*════════════════ Pair ════════════════*/ /*══════════════ String ════════════════*/ /*══════════…...
微信小程序将markdown内容转为pdf并下载
要在微信小程序中将Markdown内容转换为PDF并下载,您可以使用以下方法: 方法一:使用第三方API服务 选择第三方API服务: 可以选择像 Pandoc、Markdown-PDF 或 PDFShift 这样的服务,将Markdown转换为PDF。例如,PDFShift 提供了一个API接口,可以将Markdown内容转换为PDF格式…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
Java数组Arrays操作全攻略
Arrays类的概述 Java中的Arrays类位于java.util包中,提供了一系列静态方法用于操作数组(如排序、搜索、填充、比较等)。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序(sort) 对数组进行升序…...
