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

zipkin 引申一:如何遍历jar目录下的exec.jar并选择对应序号的jar启动

文章目录

  • 一、Zipin概述
  • 二、如何下载
  • 三、需求描述
  • 四、代码实现
    • 1. pom设置
    • 2. 相关工具类
    • 3. 核心代码
  • 五、打包部署
    • 1. 打包,在项目目录执行`mvn clean package`
    • 2. 部署
    • 3. 运行以及停止
  • 六、源码放送

一、Zipin概述

Zipkin是Twitter开源的分布式跟踪系统,基于Dapper的论文设计而来。它的主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。Zipkin还提供了一个非常友好的界面,帮助我们分析追踪数据。

Zipkin官网:http://zipkin.io/

二、如何下载

SpringBoot 2.0以上版本已经不需要自行搭建zipkin-server,我们可以从以下地址下载exec.jar

【版本 0.4.3-2.12.9】https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/
【版本 2.14.1-3.4.2】https://repo1.maven.org/maven2/io/zipkin/zipkin-server/

为了方便演示起见,我们只随机挑选几个exec.jar
在这里插入图片描述

三、需求描述

现在我们希望,将当前目录的可执行包,按版本号由小到大的顺序排列,并给出序号供选择,并且可以指定启动端口参数
在这里插入图片描述

四、代码实现

下面以java代码为例来说明实现过程,当然如果对shell脚本比较熟悉,也可用脚本实现以上功能。
为了保证可执行包尽可能的小,仅使用纯jdk来实现。

1. pom设置

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.fly</groupId><artifactId>quick-start</artifactId><version>0.0.1</version><name>quick-start</name><url>http://maven.apache.org</url><packaging>jar</packaging><properties><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version><skipTests>true</skipTests></properties><build><finalName>${project.artifactId}-${project.version}</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.2.0</version><configuration><archive><manifest><mainClass>com.fly.simple.Quickstart</mainClass></manifest></archive></configuration></plugin></plugins></build>
</project>

2. 相关工具类

执行java命令工具

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Executor
{/*** execute命令* * @param command 执行的命令* @param printLog 是否打印日志* @throws IOException*/public static void execute(String command, boolean printLog)throws IOException{System.out.println(String.format("即将执行:%s\n", command));Process ps = Runtime.getRuntime().exec(command);if (!printLog){return;}try (BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream(), "GBK"))){String line;while ((line = br.readLine()) != null){System.out.println(line);}}}
}

文件排序功能使用

import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class RegExUtils
{private static String EMPTY = "";/*** 移除正则内容* * @param text* @param regex* @return*/public static String removePattern(String text, String regex){return replacePattern(text, regex, EMPTY);}public static String replacePattern(String text, String regex, String replacement){if (text == null || regex == null || replacement == null){return text;}return Pattern.compile(regex, Pattern.DOTALL).matcher(text).replaceAll(replacement);}/*** 返回版本号<br>* * e.g: zipkin-server-2.10.4-exec.jar 返回 02.10.04* * @param text* @return*/public static String getVersion(String text){text = removePattern(text, "[a-z]|-|\\.jar");return Stream.of(text.split("\\.")).map(v -> leftPad(v, 2, "0")).collect(Collectors.joining("."));}/*** 左补位padStr* * @param input* @param size* @param padStr* @return*/public static String leftPad(String input, int size, String padStr){StringBuffer sb = new StringBuffer();while (sb.length() < size - input.length()){sb.append(padStr);}return sb.append(input).toString();}
}

3. 核心代码


import java.io.File;
import java.io.IOException;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import java.util.stream.Stream;import com.fly.simple.utils.Executor;
import com.fly.simple.utils.RegExUtils;/*** 快速启动*/
public class Quickstart
{/*** 遍历jar目录下的zipkin-server-xxx-exec.jar,选择对应序号的jar启动<br>* java -jar quick-start-0.0.1.jar --port=8081* * @param args* @throws IOException*/public static void main(String[] args)throws IOException{String port = "9411";if (args.length > 0){port = Stream.of(args).filter(arg -> arg.contains("--port")).map(arg -> arg.substring(arg.indexOf("=") + 1)).collect(Collectors.joining());}String path = new File("").getCanonicalPath();String[] files = new File(path).list();if (files != null && files.length > 0){List<String> jarList = Stream.of(files).filter(f -> f.endsWith("-exec.jar")).sorted(Comparator.comparing(RegExUtils::getVersion)) // 自然数排序.collect(Collectors.toList());// 选项选择String input;Scanner sc = new Scanner(System.in);do{AtomicInteger count = new AtomicInteger(1);jarList.forEach(jar -> System.out.println(String.format("%2d ===> %s", count.getAndIncrement(), jar)));System.out.println("请输入序号选择文件,x退出:");input = sc.nextLine();if ("x".equalsIgnoreCase(input)){System.out.println("退出系统!");sc.close();return;}} while (input == null || input.trim().length() == 0 || Integer.parseInt(input) < 1 || Integer.parseInt(input) > jarList.size());String jar = jarList.get(Integer.parseInt(input) - 1);System.out.println("你选择了:" + jar);// 执行脚本String command = String.format("java -jar %s --server.port=%s", jar, port);Executor.execute(command, false);sc.close();try{Runtime.getRuntime().exec("cmd /c start /min http://127.0.0.1:" + port);}catch (IOException e){}}}
}

五、打包部署

1. 打包,在项目目录执行mvn clean package

在这里插入图片描述

2. 部署

执行完成后会在target目录生成8kb大小的可执行包,将quick-start-0.0.1.jar 拷贝到服务器zipkin-server目录下
在这里插入图片描述

3. 运行以及停止

支持指定端口号,默认9411

java -jar quick-start-0.0.1.jar  --port=8082

在这里插入图片描述
查看运行状态,如果没有别的java程序,停止程序可以使用kaillall java或者kill -9 ${pid}
·
在这里插入图片描述
ui界面如图
在这里插入图片描述

六、源码放送

https://gitcode.com/00fly/quick-start/overview


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

相关文章:

zipkin 引申一:如何遍历jar目录下的exec.jar并选择对应序号的jar启动

文章目录 一、Zipin概述二、如何下载三、需求描述四、代码实现1. pom设置2. 相关工具类3. 核心代码 五、打包部署1. 打包&#xff0c;在项目目录执行mvn clean package2. 部署3. 运行以及停止 六、源码放送 一、Zipin概述 Zipkin是Twitter开源的分布式跟踪系统&#xff0c;基于…...

使用 httputils + protostuff 实现高性能 rpc

1、先讲讲 protobuf protobuf 一直是高性能序列化的代表之一&#xff08;google 出品&#xff09;。但是用起来&#xff0c;可难受了&#xff0c;你得先申明 “.proto” 配置文件&#xff0c;并且要把这个配置文件编译转成类。所以必然要学习新语法、新工具。 可能真的太难受…...

Facebook广告文案流量秘诀

Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密&#xff01; 一、广告文案怎么写&#xff1f; 正文&#xff1a;这是帖子的正文&#xff0c;出现在您姓名的正下方。它可…...

在Vue.js中生成二维码(将指定的url+参数 生成二维码)

在Vue.js中生成二维码&#xff0c;你可以使用JavaScript库如qrcode或qr.js。以下是一个简单的例子&#xff0c;展示如何在Vue组件中使用qrcode库将指定的URL加上参数生成二维码。 首先&#xff0c;你需要安装qrcode库。如果你使用的是npm或yarn&#xff0c;可以通过命令行安装…...

Face2QR:可根据人脸图像生成二维码,还可以扫描,以后个人名片就这样用了!

今天给大家介绍的是一种专为生成个性化二维码而设计的新方法Face2QR&#xff0c;可以将美观、人脸识别和可扫描性完美地融合在一起。 下图展示为Face2QR 生成的面部图像&#xff08;第一行&#xff09;和二维码图像&#xff08;第二行&#xff09;。生成的二维码不仅忠实地保留…...

【Linux网络编程】第六弹---构建TCP服务器:从基础到线程池版本的实现与测试详解

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、TcpServerMain.cc 2、TcpServer.hpp 2.1、TcpServer类基本结构 2.2、构造析构函数 2.3、InitServer(…...

XML 语言随笔

XML的含义 XML&#xff08;eXtensible Markup Language&#xff0c;可扩展标记语言&#xff09;是一种用于存储和传输数据的标记语言。XML与HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;类似&#xff0c;但XML的设计目的是描述数据&…...

flex: 1 display:flex 导致的宽度失效问题

flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景&#xff0c;详情项每行三项分别占33%宽度&#xff0c;每项有label字数不固定所以宽度不固定&#xff0c;还有content 占满标签剩余宽度&#xff0c;文字过多显示省略号&#xff0c; 鼠标划入展示…...

65页PDF | 企业IT信息化战略规划(限免下载)

一、前言 这份报告是企业IT信息化战略规划&#xff0c;报告详细阐述了企业在面对新兴技术成熟和行业竞争加剧的背景下&#xff0c;如何通过三个阶段的IT战略规划&#xff08;IT 1.0基础建设、IT 2.0运营效率、IT 3.0持续发展&#xff09;&#xff0c;系统地构建IT管理架构、应…...

15.三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例 1&am…...

【Notepad++】---设置背景为护眼色(豆沙绿)最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【Notepad】---设置背景为护眼色&#xf…...

项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面

一、User 1、使用数据注解设置主键和外键 设置主键&#xff1a;在User类的U_uid属性上使用[Key]注解。 设置外键&#xff1a;在Order类中&#xff0c;创建一个表示外键的属性&#xff08;例如UserU_uid&#xff09;&#xff0c;并使用[ForeignKey]注解指定它引用User类的哪个…...

电子商务人工智能指南 3/6 - 聊天机器人和客户服务

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...

vue.js组件开发的所有流程

1. 设计组件架构 首先&#xff0c;你需要考虑应用的结构&#xff0c;决定哪些部分应该成为独立的组件。这包括&#xff1a; 提取重复的UI元素&#xff1a;如按钮、输入框、卡片等。 功能模块&#xff1a;例如登录框、导航栏、数据表格等。 2. 设置开发环境 安装Node.js&#xf…...

从零开始学TiDB(1) 核心组件架构概述

首先TiDB深度兼容MySQL 5.7 1. TiDB Server SQL语句的解析与编译&#xff1a;首先一条SQL语句最先到达的地方是TiDB Server集群&#xff0c;TiDB Server是无状态的&#xff0c;不存储数据&#xff0c;SQL 发过来之后TiDB Server 负责 解析&#xff0c;优化&#xff0c;编译 这…...

VsCode运行Ts文件

1. 生成package.json文件 npm init 2. 生成tsconfig.json文件 tsc --init 3. Vscode运行ts文件 在ts文件点击右键执行Run Code,执行ts文件...

初始化webpack应用示例

1、初始化npm mkdir webpack_test cd webpack_test npm init 2、安装webpack依赖 npm install webpack webpack-cli -D 3、添加文件夹&#xff0c;入口文件 mkdir src touch index.js touch add-content.js 文件夹结构 index.js import addContent from "./add-cont…...

liunx docker 部署 nacos seata sentinel

部署nacos 1.按要求创建好数据库 2.创建docker 容器 docker run -d --name nacos-server -p 8848:8848 -e MODEstandalone -e SPRING_DATASOURCE_PLATFORMmysql -e MYSQL_SERVICE_HOST172.17.251.166 -e MYSQL_SERVICE_DB_NAMEry-config -e MYSQL_SERVICE_PORT3306 -e MYSQL…...

MySQL面试

文章目录 事务隔离级别需要解决的问题事务隔离级别 MySQL 中是如何实现事务隔离的实现可重复读 什么是存储引擎如何定位慢查询分析慢查询原因MySQL超大分页怎么处理索引失效什么时候建立唯一索引、前缀索引、联合索引&#xff1f;redolog与binlog是如何保证一致的redolog刷盘时…...

linux运维之shell编程

Shell 编程在系统运维中及其重要 1. Shell 编程概述 Shell 是一种命令行解释器&#xff0c;能够执行操作系统的命令。Shell 脚本是一个包含一系列 Shell 命令的文件&#xff0c;它可以被执行&#xff0c;以自动化和批量处理任务。常用的 Shell 类型包括 bash、sh、zsh 等。Shel…...

ssm 多数据源 注解版本

application.xml 配置如下 <!-- 使用 DruidDataSource 数据源 --><bean id"primaryDataSource" class"com.alibaba.druid.pool.DruidDataSource" init-method"init" destroy-method"close"></bean> <!-- 使用 数…...

Nginx核心配置详解

一、配置文件说明 nginx官方帮助文档&#xff1a;nginx documentation nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;nginx.conf子配置文件: include conf.d/*.conffastcgi&#xff0c; uwsgi&#xff0c;scgi 等协议相关的配置文件mime.types&#xff1a;…...

十六(AJAX3)、XMLHttpRequest、Promise、简易axios封装、案例天气预报、lodash-debounce防抖

1. XMLHttpRequest 1.1 XMLHttpRequest-基本使用 /* 定义&#xff1a;XMLHttpRequest&#xff08;XHR&#xff09;对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL&#xff0c;获取数据。这允许网页在不影响用户操作的情况下&#xff0c;更…...

12.06 深度学习-预训练

# 使用更深的神经网络 经典神经网络 import torch import cv2 from torchvision.models import resnet18,ResNet18_Weights from torch import optim,nn from torch.utils.data import DataLoader from torchvision.datasets import CIFAR10 from torchvision import tr…...

【计算机网络】期末速成(2)

部分内容来源于网络&#xff0c;侵删~ 第五章 传输层 概述 传输层提供进程和进程之间的逻辑通信&#xff0c;靠**套接字Socket(主机IP地址&#xff0c;端口号)**找到应用进程。 传输层会对收到的报文进行差错检测。 比特流(物理层)-> 数据帧(数据链路层) -> 分组 / I…...

Python学习笔记10-作用域

作用域 定义&#xff1a;Python程序程序可以直接访问命名空间的正文区域 作用&#xff1a;决定了哪一部分区域可以访问哪个特定的名称 分类&#xff1a; 局部作用域&#xff08;Local&#xff09;闭包函数外的函数中&#xff08;Enclosing&#xff09;全局作用域&#xff0…...

Sui 主网升级至 V1.38.3

Sui 主网现已升级至 V1.38.3 版本&#xff0c;同时协议升级至 69 版本。请开发者及时关注并调整&#xff01; 其他升级要点如下所示&#xff1a; 协议 #20199 在共识快速路径投票中设置允许的轮次数量。 节点&#xff08;验证节点与全节点&#xff09; #20238 为验证节点…...

linux的vdagent框架设计

1、vdagent Linux 的 spice 客户代理由两部分组成&#xff0c;一个系统范围的守护进程 spice-vdagentd 和一个 X11 会话代理 spice-vdagent&#xff0c;每个 X11 会话有一个。spice-vdagentd 通过 Sys-V initscript 或 systemd 单元启动。 如下图&#xff1a;spice-vdagent&a…...

vue3+elementPlus封装的一体表格

目录结构 源码 exportOptions.js export default reactive([{label: 导出本页,key: 1,},{label: 导出全部,key: 2,}, ])index.vue <template><div class"flex flex-justify-between flex-items-end"><div><el-button-group><slot name…...

判断是否 AGP7+ 的方法

如何判断&#xff1f; /*** 是否是AGP7.0.0及以上* param project* return*/static boolean isAGP7_0_0(Project project) {def androidComponents project.extensions.findByName("androidComponents")if (androidComponents && androidComponents.hasProp…...

使用 Streamlit +gpt-4o实现有界面的图片内容分析

在上一篇利用gpt-4o分析图像的基础上&#xff0c;进一步将基于 Python 的 Streamlit 库&#xff0c;结合 OpenAI 的 API&#xff0c;构建一个简洁易用的有界面图片内容分析应用。通过该应用&#xff0c;用户可以轻松浏览本地图片&#xff0c;并获取图片的详细描述。 调用gpt-4o…...

树莓集团是如何链接政、产、企、校四个板块的?

树莓集团作为数字影像行业的积极探索者与推动者&#xff0c;我们通过多维度、深层次的战略举措&#xff0c;将政、产、企、校四个关键板块紧密链接在一起&#xff0c;实现了资源的高效整合与协同发展&#xff0c;共同为数字影像产业的繁荣贡献力量。 与政府的深度合作政府在产业…...

Fyne ( go跨平台GUI )中文文档-Fyne总览(二)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16及更高版本,ide为goland2021.2??????? ?这是一个系列文章&#xff1a; Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne…...

MySQL数据库(3)-SQL基础语言学习

1. DDL数据定义语言 1.1 什么是DDL DDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09;是SQL语言的一部分&#xff0c;用于定义和修改数据库结构。DDL主要包括以下三类语句&#xff1a; 1.CREATE&#xff1a;用于创建数据库对象&#xff0c;如数…...

下拉框根据sql数据回显

vue <a-form-item label"XXXX" :labelCol"labelCol" :wrapperCol"wrapperCol" required><a-select v-decorator"[disputeType, validatorRules.disputeType]" style"width: 200px" placeholder"请选择XXXX&q…...

电池销售系统

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 在当今信息爆炸的大时代&#xff0c;由于信息管理系统能够更有效便捷的完成信息的管理&#xff0c;越来越多的人及机构都已经引入和发展以信息管理系统为基础的信息化管理模式&#xff0c;随之信…...

四、镜像构建

四、镜像构建 从镜像大小上来说&#xff0c;一个比较小的镜像只有十几MB&#xff0c;而内核文件需要一百多MB&#xff0c;因此镜像里面是没有内核的&#xff0c;镜像是在被启动为容器后直接使用宿主机的内核&#xff0c;而镜像本身则只提供相应的rootfs&#xff0c;即系统正常…...

FastAPI 响应状态码:管理和自定义 HTTP Status Code

FastAPI 响应状态码&#xff1a;管理和自定义 HTTP Status Code 本文介绍了如何在 FastAPI 中声明、使用和修改 HTTP 状态码&#xff0c;涵盖了常见的 HTTP 状态码分类&#xff0c;如信息响应&#xff08;1xx&#xff09;、成功状态&#xff08;2xx&#xff09;、客户端错误&a…...

C#设计模式--原型模式(Prototype Pattern)

原型模式是一种创建型设计模式&#xff0c;它允许通过复制现有对象来创建新对象&#xff0c;而无需通过构造函数。这种方式可以提高性能&#xff0c;特别是在创建复杂对象时。C# 中可以通过实现 ICloneable 接口或自定义克隆方法来实现原型模式。 案例 1&#xff1a;文档编辑器…...

使用Goland对6.5840项目进行go build出现异常

使用Goland对6.5840项目进行go build出现异常 Lab地址: https://pdos.csail.mit.edu/6.824/labs/lab-mr.html项目地址: git://g.csail.mit.edu/6.5840-golabs-2024 6.5840运行环境: mac系统 goland git clone git://g.csail.mit.edu/6.5840-golabs-2024 6.5840 cd 6.5840/src…...

使用kibana实现es索引的数据映射和索引模版/组件模版

1 数据映射 数据映射官方链接 1.1 日期映射案例 1.创建一条索引。把索引中的字段生日映射为日期&#xff0c;并制定映射后的格式为年月日 PUT http://10.0.0.91:9200/zhiyong18-luckyboy-date {"mappings": {"properties": {"birthday": {&q…...

基于elementui的远程搜索下拉选择分页组件

在开发一个练手项目的时候&#xff0c;需要一个远程搜索的下拉选择组件&#xff1b; elementui自带的el-select支持远程搜索&#xff1b;但如果一次性查询的数据过多&#xff1b;会导致卡顿。故自己实现一个可分页的远程下拉选择组件 效果&#xff1a; 代码&#xff1a; <…...

每日一题 LCR 074. 合并区间

LCR 074. 合并区间 对遍历顺序注意一下就可以 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {int n intervals.size();sort(intervals.begin(),intervals.end());int idx 0;vector<vector<int&g…...

Flink SQL

Overview | Apache Flink FlinkSQL开发步骤 Concepts & Common API | Apache Flink 添加依赖&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-api-java-bridge_2.11</artifactId><version>…...

[免费]SpringBoot+Vue企业OA自动化办公管理系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue企业OA自动化办公管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue企业OA自动化办公管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术在管理上越来越深入…...

Linux下编译安装METIS

本文记录Linux下编译安装METIS的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1 一、安装依赖 1.1 下载GKlib sudo apt-get install build-essential sudo apt-get install cmake 2.2 编译安装GKlib 下载GKlib代码&#xff0c; …...

LLM学习路径 - 渐进式构建知识体系

LLM学习路径 - 渐进式构建知识体系 文章目录 LLM学习路径 - 渐进式构建知识体系一、模型算法基础二、机器学习三、深度学习四、自然语言处理 (NLP)五、大规模语言模型 (LLM) References 一、模型算法基础 编程基础 Web 框架 深入学习 Gradio 与 Streamlit&#xff0c;理解其构…...

使用Unity脚本模拟绳索、布料(碰撞)

效果演示&#xff1a; 脚本如下&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine;namespace PhysicsLab {public class RopeSolver : MonoBehaviour {public Transform ParticlePrefab;public int Count 3;public int Space 1;…...

Qt Chart 模块化封装曲线图

一 版本说明 二 完成示例 此文章包含&#xff1a;曲线轴设置&#xff0c;曲线切换&#xff0c;单条曲线显示&#xff0c;坐标轴。。。 三 曲线图UI创建 在UI界面拖放一个QWidget,然后在 Widget里面放一个 graphicsView 四 代码介绍 1 头文件 #include <QString> #in…...

【Linux】深入理解进程管理与fork系统调用的实现原理

【Linux】深入理解进程管理与fork系统调用的实现原理 进程基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程 查看进程通过系统调用获取进程标示符Fork 之后的代码共享1. **代码共享**2. **数据段不共享**总结 &#x1f30f;个人博客主页&#xff1a;个人…...