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

Java——创建多线程的四种方式

一、继承Thread

步骤

1.定义一个类继承Thread

2.重写run方法,在方法中设置线程任务(此线程具体执行的代码)

3.创建自定义线程类对象

4.调用Thread中的start方法,开启线程,jvm自动调用run方法

常用方法

void start()->开启线程,jvm自动调用run方法
void run()->设置线程任务,Thread重写接口Runnable中的run方法
String getName()->获取线程名字
void setName()->给线程设置名字
static Thread currentThread()->获取正在执行的线程对象
static void sleep(long millis)->线程睡眠,睡醒后自动继续执行。

示例代码

public class Person extends Thread{public void run() {for(int i=0;i<5;i++){System.out.println(i);}}
}
public class Demon1 {public static void main(String[] args) throws LogeinException {Person p=new Person();p.start();for(int i=0;i<5;i++){System.out.println("main"+i);}}
}

二、实现Runnable接口

步骤

1.创建一个类实现Runnable接口

2.重写run方法,设置线程任务

3.利用Thread类的构造方法:Thread(Runnable target),创建Thread对象(线程对象),将自定义的类当参数传递到Thread构造中

4.调用Thread中的start方法,开启线程,jvm自动调用run方法

示例代码

public class MyThread implements Runnable{public void run() {for(int i=1;i<10;i++){System.out.println(Thread.currentThread().getName()+i);Thread.yield();}}
}
public class Demon1 {public static void main(String[] args) throws LogeinException {MyThread myThread = new MyThread();Thread t1=new Thread(myThread);t1.start();}
}

匿名内部类创建多线程

匿名内部类形式建立在实现Runnable接口的基础上完成

public class Demon1 {public static void main(String[] args) throws LogeinException {new Thread(new Runnable() {public void run() {for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+i);}}}).start();}
}
//Thread(Runnable target,String name):name代表线程的名字
public class Demon1 {public static void main(String[] args) throws LogeinException {new Thread(new Runnable() {public void run() {for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+i);}}},"m-").start();}
}

以上两种多线程的方式区别

1.继承Thread:继承只支持单继承,有继承的局限性

2.实现Runnable:没有继承的局限性

三、实现Callable接口

Callable是一个接口<V>,类似Runnable

步骤

1.创建一个类实现 Callable 接口,该接口是一个函数式接口,有一个泛型参数,用于指定返回值类型。
2.实现 call 方法,在 call 方法中定义线程要执行的任务,并返回一个结果。
3.创建 Callable 接口实现类的实例,将其包装在一个 FutureTask 对象中,FutureTask 实现了 RunnableFuture 接口,而 RunnableFuture 接口继承了 Runnable 和 Future 接口。
4.将 FutureTask 对象作为参数传递给 Thread 类的构造函数,然后调用 start 方法启动线程。可以通过 FutureTask 的 get 方法获取 call 方法的返回结果。

V call()->设置线程任务类似runpublic class MyTicket implements Callable<String> {public String call() throws Exception {return null;}
}

call和run的区别:

a.相同点:设置线程任务

b.不同点:call有返回值,有异常可以throws;run方法没有返回值,有异常不可以throw

获取call方法返回值:FutureTask<V>

a.FutureTask<V>实现了一个接口:Future<V>

b.FutureTask<V>中有一个方法:

V get()->获取call方法的返回值

示例代码

 public class Text {public static void main(String[] args) throws ExecutionException, InterruptedException {MyTicket myTicket = new MyTicket();FutureTask<String> future = new FutureTask<>(myTicket);//创建Thread对象->Thread(Runnable target)Thread thread=new Thread(future);thread.start();//调用get方法获取call方法返回值System.out.println(future.get());}
}

四、线程池

步骤

1.创建线程池对象,指定池子中最多有多少个线程对象;

2.每来一个线程任务,判断线程池中有没有线程对象,如果没有,创建线程对象,给线程任务用,用完需要返还给线程池;创建的线程对象数量不能超过指定的线程对象数量;如果此时没有空闲的线程对象,需要等待其它线程任务执行完毕再使用

  • 如何创建线程池对象:工具类->Executors
  • 获取线程池对象:Executors中的静态方法:
static ExecutorService newFixedThreadPool(int nThreads)
a.参数:指定线程池中最多创建的线程对象;
b.返回值ExecutorService是线程池,用来管理线程对象
  • 执行线程任务:ExcutorService中的方法
Future<?>submit(Runnable task) 提交一个Runnable任务用于执行
Future<T> submit(Callable<T> task) 提交一个Callable任务用于执行
  • submit的返回值:Future接口,用于接收run方法或call方法的返回值,但是run方法没有返回值,所以可以不用Future接收,执行call方法需要用Future接收。Future中有一个方法:V get()用于获取call方法返回值
  • ExcutorService中的方法
void shutdown() 启动有序关闭,其中先前提交的任务将被执行,但不会接收任何新任务

示例代码

public class MyTicket implements Runnable {public void run(){System.out.println(Thread.currentThread().getName()+"run");}
}
public class Text {public static void main(String[] args) throws ExecutionException, InterruptedException {//创建线程池对象ExecutorService executor = Executors.newFixedThreadPool(2);executor.submit(new MyTicket());executor.submit(new MyTicket());executor.submit(new MyTicket());executor.shutdown();//关闭线程对象}
}
public class MyTicket implements Callable<Integer> {public Integer call() throws Exception {return 1;}
}
public class Text {public static void main(String[] args) throws ExecutionException, InterruptedException {//创建线程池对象ExecutorService executor = Executors.newFixedThreadPool(2);Future<Integer> f1=executor.submit(new MyTicket());System.out.println(f1.get());Future<Integer>f2=executor.submit(new MyTicket());System.out.println(f2.get());executor.submit(new MyTicket());executor.shutdown();//关闭线程对象}
}

五、总结

Java 提供了多种创建多线程的方式,每种方式都有其特点和适用场景。继承 Thread 类简单直接,适用于简单的线程任务;实现 Runnable 接口更加灵活,适合在已有类层次结构中使用多线程;实现 Callable 接口可用于需要获取线程执行结果的场景;使用线程池则可以高效地管理和复用线程,适用于需要大量线程处理任务的情况,并且可以通过合理配置线程池参数来优化系统性能。在实际开发中,需要根据具体的需求和场景选择合适的多线程创建方式,以充分发挥多线程编程的优势,提高程序的质量和效率。

相关文章:

Java——创建多线程的四种方式

一、继承Thread 步骤 1.定义一个类继承Thread 2.重写run方法&#xff0c;在方法中设置线程任务&#xff08;此线程具体执行的代码&#xff09; 3.创建自定义线程类对象 4.调用Thread中的start方法&#xff0c;开启线程&#xff0c;jvm自动调用run方法 常用方法 void sta…...

广域网学习

PPPoE技术&#xff08;拨号上网&#xff09; PPPoE &#xff08; PPP over Ethernet &#xff0c;以太网承载 PPP 协议&#xff09;是一种把 PPP 帧封装到以太网帧中的链路层协议。 PPPoE 可以使以太网网络中的多台主机连接到远端的宽带接入服务器。 应用场景 PPPoE 组网结构采…...

inverse-design-of-grating-coupler-3d

一、设计和优化3D光栅耦合器 1.1 代码讲解 通过预定义的环形间距参数(distances数组),在FDTD中生成椭圆光栅结构,并通过用户交互确认几何正确性后,可进一步执行参数扫描优化。 # os:用于操作系统相关功能(如文件路径操作) import os import sys# lumapi:Lumerical 的…...

渗透测试流程-中篇

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 四月廿一&#xff08;2025年5月18日&#xff09; 今天笔者带大家继续学习&#xff0c;网安的知识比较杂且知识面很广&#xff0c;这一部分会介绍很多需要使用的工具。会用各种工具是做网安的基础&#xff0c;ok咱们继续…...

2026武汉门窗门业移门木门铝艺门智能锁展会3月国博举办

展出面积&#xff1a;60000㎡ 观众&#xff1a;80000人次 参展企业&#xff1a;800 专业活动&#xff1a;20 2026武汉门窗门业移门木门铝艺门智能锁展会3月国博举办 2026第二届中国武汉整装定制家居暨门窗装饰材料博览会/2026武汉建博会 时间&#xff1a;2026年3月20-22日 …...

如何用mockito+junit测试代码

Mockito 是一个流行的 Java 模拟测试框架&#xff0c;用于创建和管理测试中的模拟对象(mock objects)。它可以帮助开发者编写干净、可维护的单元测试&#xff0c;特别是在需要隔离被测组件与其他依赖项时。 目录 核心概念 1. 模拟对象(Mock Objects) 2. 打桩(Stubbing) 3. 验…...

31、魔法生物图鉴——React 19 Web Workers

一、守护神协议&#xff08;核心原理&#xff09; 1. 灵魂分裂术&#xff08;线程架构&#xff09; // 主组件中初始化Workerconst workerRef useRef(null);​useEffect(() > {workerRef.current new Worker(new URL(./creatureWorker.js, import.meta.url));workerRef.…...

洛谷题目:P4052 [JSOI2007] 文本生成器 题解 本题(极难)

个人介绍: 题目传送门: P4052 [JSOI2007] 文本生成器 - 洛谷 (luogu.com.cn) 前言: 这道题要求计算长度为 m 的文章中,至少包含一个给定单词的可读文章的数量,并且结果需要对 10007 取模。下面是小亦为大家逐步分析解题思路: 题目整体思路: 为了方便计算…...

【Linux】命令行参数和环境变量

目录 一、命令行参数 二、环境变量 &#xff08;一&#xff09;PATH &#xff08;二&#xff09;查看环境变量 &#xff08;三&#xff09;获取环境环境变量 &#xff08;四&#xff09;为什么要环境变量 &#xff08;五&#xff09;环境变量特点总结 &#xff08;1&am…...

AGI大模型(23):LangChain框架快速入门之LangChain介绍

1 什么是LangChain? LangChain是一个基于大语言模型用于构建端到端语言模型应用的框架,它提供了一系列工具、套件和接口,让开发者使用语言模型来实现各种复杂的任务,如文本到图像的生成、文档问答、聊天机器人等。 官网地址:https://python.langchain.com/docs/introduc…...

vmware虚拟机运行多个产生卡顿问题

最近在工作中使用电脑运行两个虚拟机&#xff0c;用来测试程序。运行的时候发现电脑会非常卡顿。导致调试工作进行到一半就会闪退卡死。 首先尝试的解决方案是开一个虚拟机&#xff0c;然后在windows上部署测试程序&#xff0c;后面发现操作很受限制。然后使用windows管…...

八股碎碎念01——HashMap原理

Java面试题周总结 HashMap HashMap实现原理 Java 1.7版本 在Java1.7中HashMap通过数组链表的方式实现&#xff0c;由于链表查询速度为O(n)&#xff0c;因此在插入大量元素后查询速度会明显降低。 Java 1.8版本 在Java1.8中对HashMap进行改进&#xff0c;采用数组链表/红黑…...

长篇小说《白鹿原》原著版本在当当网可购到

著名作家陈忠实所真实描写上世纪1959年、1960年、1961年我国三年饥荒时人吃人的长篇小说《白鹿原》原著版本&#xff0c;现能在当当网上购到&#xff0c;价格仅26元。特此推荐。 笔者是从那段不堪回首的饥饿历史中幸存下来的过来人&#xff0c;也是在改革开放初期的文艺复兴年代…...

ColorAid —— 一个面向设计师的色盲模拟工具开发记

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 起因&#xff1a;CodeBuddy&#xff0c;说干就干 起初只是一个随口的想法——我想做一个“色盲辅助工具”&…...

对称加密与非对称加密在 JWT 中的应用详解

文章目录 对称加密与非对称加密在 JWT 中的应用详解引言对称加密与非对称加密概述对称加密&#xff08;Symmetric Encryption&#xff09;非对称加密&#xff08;Asymmetric Encryption&#xff09; 对称加密生成和验证 JWT 的过程生成 JWT&#xff08;HS256 示例&#xff09;验…...

Python 中 if 和 else 基础知识的详解和使用

一、基本语法结构 if 条件1:# 条件1 为真时执行的代码块 elif 条件2:# 条件1 不成立&#xff0c;条件2 成立时执行 else:# 所有条件都不成立时执行注意&#xff1a; elif 是“else if”的缩写&#xff0c;可以有多个&#xff1b;else 可省略&#xff1b;条件表达式必须是可以…...

学习黑客Active Directory 入门指南(三)

Active Directory 入门指南&#xff08;三&#xff09;&#xff1a;关键服务、用户与组管理 &#x1f91d;&#x1f4bb; 大家好&#xff01;欢迎来到 “Active Directory 入门指南” 系列的第三篇。在前两篇中&#xff0c;我们已经了解了AD的基本概念、逻辑结构&#xff08;对…...

10.9 LangChain LCEL革命:43%性能提升+声明式语法,AI开发效率飙升实战指南

LangChain 表达式语言(LCEL)架构解析:新一代链式编排引擎 关键词:LangChain Expression Language, Runnable 协议, 链式编排, 并行处理, 生产级应用开发 1. LCEL 设计理念与技术突破 LangChain Expression Language(LCEL)是 LangChain v0.3 的核心革命性升级,重新定义…...

一文读懂-嵌入式Ubuntu平台

现在直接在一些嵌入式Soc上移植ubuntu来用到产品上&#xff0c;刚开始感觉还挺臃肿的&#xff0c;后来细聊了下感觉还是有一定的优势。 ubuntu相信大家在熟悉不过了&#xff0c;几乎无处不在&#xff0c;小到咖啡机&#xff0c;大到火星车&#xff0c;为什么ubuntu如此广泛&am…...

centos7.9扩展已有分区空间

新增50G硬盘 分区 fdisk /dev/sdb Command (m for help): p #打印分区表Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors Units sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 byte…...

ubuntu22.04搭建ROS2环境

在 Ubuntu 22.04 上安装 ROS 2&#xff08;Humble Hawksbill&#xff09;时&#xff0c;针对国内网络问题&#xff0c;建议使用镜像源加速。以下是分步指南&#xff1a; 1. 更换 Ubuntu 系统源&#xff08;使用清华镜像&#xff09; sudo sed -i "shttp://.*archive.ubunt…...

java中sleep()和wait()暂停线程的区别

1. Thread.sleep() 所属类&#xff1a;它是Thread类的静态方法。作用&#xff1a;让当前正在执行的线程暂停指定的时间&#xff0c;在暂停期间&#xff0c;线程会一直持有对象锁&#xff08;也就是synchronized锁&#xff09;。中断响应&#xff1a;当线程处于sleep()状态时&a…...

printf函数参数与入栈顺序

01. printf()的核心功能 作用&#xff1a;将 格式化数据 输出到 标准输出&#xff08;stdout&#xff09;&#xff0c;支持多种数据类型和格式控制。 int printf(const char *format, ...);参数&#xff1a; format&#xff1a;格式字符串,字符串或%开头格式符...&#xff1a;…...

代码案例分析

以下是一个使用线性回归进行简单房价预测的机器学习代码案例分析&#xff1a; 代码示例 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split # 生成一些示例数据…...

Baklib赋能企业知识资产AI化升级

AI驱动知识管理革新 在数字化转型浪潮中&#xff0c;企业知识管理的范式正经历AI技术的深度重构。传统知识库受限于静态存储与人工维护&#xff0c;而Baklib通过构建知识中台架构&#xff0c;将多模态数据处理与语义理解引擎深度融合&#xff0c;实现知识资产的动态聚合与智能…...

Leetcode 3552. Grid Teleportation Traversal

Leetcode 3552. Grid Teleportation Traversal 1. 解题思路2. 代码实现 题目链接&#xff1a;3552. Grid Teleportation Traversal 1. 解题思路 这一题的话核心就是一个广度优先遍历&#xff0c;我们只需要从原点开始&#xff0c;一点点考察其所能到达的位置&#xff0c;直至…...

【Bluedroid】蓝牙HID DEVICE 报告发送与电源管理源码解析

本文基于Android蓝牙协议栈代码&#xff0c;深度解析HID设备&#xff08;如键盘、鼠标&#xff09;从应用层发送输入报告到主机设备的完整流程&#xff0c;涵盖数据封装、通道选择、L2CAP传输、电源管理四大核心模块。通过函数调用链&#xff08;send_report → BTA_HdSendRepo…...

day15-进程管理

1. 概述 运行起来的软件就是进程&#xff0c;在内存中运行守护进程/服务&#xff1a;一直运行的进程 2. 僵尸进程 2.1. 僵尸进程zombie 当子进程比父进程先结束&#xff0c;而父进程又没有回收子进程&#xff0c;释放子进程占用的资源&#xff0c;此时子进程将成为一个僵尸…...

抖音视频下载工具 v1.1 自用分享

用免费的公益接口用AI写了个简单的抖音视频下载工具&#xff0c;自用的&#xff0c;不支持批量下载 内置两套API&#xff0c;解析失败会自动切换&#xff0c;支持视频预览播放&#xff0c;视频截图等操作 使用方法也很简单&#xff1a; 软件打开后会监听粘贴板&#xff0c;当检…...

46、什么是Windows服务,它的⽣命周期与标准的EXE程序有什么不同?

Windows服务是一种在Windows操作系统后台运行的特殊应用程序&#xff0c;与标准的EXE程序相比&#xff0c;其生命周期在启动方式、运行持续性、用户交互、运行账户、管理方式、进程状态及开发要求等方面存在显著差异。以下是对Windows服务及其与标准EXE程序生命周期差异的详细分…...

用 UniApp 构建习惯打卡 App —— HabitLoop 开发记

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 当我脑海中突然冒出一个念头&#xff1a;“做一个自己能每天打卡的习惯 App 吧”&#xff0c;我立刻打开了 Cod…...

NB-IoT技术深度解析:部署模式与节能机制全指南

知识点1【NB-IoT的介绍】 NB-IoT 是指Narrow Band Internet of Things&#xff0c;聚集于低功耗窄带宽广域物联网。 1、License介绍 “有牌照”&#xff08;license&#xff09;频谱&#xff0c;指的是政府或者监管机构通过拍卖&#xff0c;划拨等方式&#xff0c;授予给各个…...

Vue百日学习计划Day28-32天详细计划-Gemini版

总目标: 在 Day 28-32 深入理解 Vue 3 的响应式机制&#xff0c;熟练掌握 Composition API 中的 setup, ref, reactive, toRefs, readonly, computed, watch, watchEffect 等核心 API 的使用。 所需资源: Vue 3 官方文档 (组合式 API): https://cn.vuejs.org/guide/introducti…...

Leetcode134加油站

题目链接 134 题意图解&#xff1a; 题目给了n个节点&#xff0c;这些节点呈现环状&#xff0c;每次到一个低点要消耗cost[i]的油量。 从中我们可以得出一个结论&#xff1a;看一个点能不能到下一个点&#xff0c;就要用当前的油量减去消耗的量&#xff0c;那么gas[i] - cost…...

用算术右移实现逻辑右移及用逻辑右移实现算术右移

函数srl()用算术右移实现逻辑右移&#xff0c;函数sra()用逻辑右移实现算术右移。 程序代码 int sra(int x,int k); unsigned int srl(unsigned int x, int k);void main() {int rx1,k,x1;unsigned int rx2,x2;k3;x10x8777;x20x8777;rx1sra(x1, k);rx2srl(x2, k);while(1); }…...

箭头函数及其与普通函数区别的详细解释

一、箭头函数的基本特性 语法简洁性 箭头函数使用 > 符号定义&#xff0c;省略 function 关键字&#xff0c;适合快速定义匿名函数或简单表达式。 // 普通函数 function sum(a, b) { return a b; } // 箭头函数 const sum (a, b) > a b;若函数体为单行表达式&#x…...

Denoising Score Matching with Langevin Dynamics

在自然图像等复杂数据集中&#xff0c;真实数据往往集中分布在一个低维流形上&#xff0c;概率密度函数的梯度&#xff08;即得分函数&#xff09;难以定义与估计。为缓解该问题&#xff0c;SMLD 提出使用不同强度的高斯噪声对数据进行扰动&#xff0c;扰动后的数据不再集中于低…...

Flink的时间问题

Apache Flink 中的 时间语义&#xff08;Time Semantics&#xff09; 是流处理的核心概念之一。Flink 支持多种时间类型&#xff0c;用于控制窗口计算、事件排序和状态管理等操作。 &#x1f552; 一、Flink 时间分类 类型名称描述Processing Time处理时间每个算子基于本地系统…...

3:OpenCV—视频播放

播放来自文件或相机的视频 在本教程中&#xff0c;我将向您展示如何使用OpenCV从文件或相机/网络摄像头捕获和播放视频。尽管OpenCV没有针对视频处理进行优化&#xff0c;但它提供了一个简单的API来播放视频。在我们的OpenCV程序中&#xff0c;我们所要做的就是从视频文件或相…...

AI工程 新技术追踪 探讨

文章目录 一、核心差异维度对比二、GitHub对AI工程师的独特价值三、需要警惕的陷阱四、推荐追踪策略五、与传统开发的平衡建议 以下内容整理来自 deepseek 作为AI工程师&#xff0c;追踪GitHub开源项目 对技术成长和职业发展的影响 比传统应用开发工程师 更为显著&#xff0c;…...

C++:函数模板

所谓函数模板就是定义一个通用的函数&#xff0c;不指定具体的参数&#xff0c;用一个虚拟参数代替&#xff1b; 当函数调用时&#xff0c;会根据实参判断具体的类型。 注意&#xff1a;不要使用默认参数&#xff1b;可以重载但尽量不要重载。 #include<iostream> usi…...

一款适配国内的视频软件,畅享大屏与局域网播放

软件介绍 今天要给大家安利一款超强视频播放软件——MXPlayer。它的解码实力堪称一绝&#xff0c;市面上不管是常见的 MP4、MKV 格式&#xff0c;还是对播放设备要求极高的超高清 4K、HDR 视频&#xff0c;甚至那些鲜为人知的冷门格式&#xff0c;它统统都能流畅播放&#xff…...

SONiC系统之高速数据遥测High Frequency Telemetry

SONiC系统之高速数据遥测High Frequency Telemetry 数据遥测 这篇文章介绍了SONiC系统支持Telemetry的软件架构以及gNMI接口中Telemetry Streaming功能Dial-in和Dial-out两者模式的区别。正如该文指出的那样&#xff0c;该结构面临扩展性问题&#xff0c;当AI训练、推理等大型…...

【Java ee初阶】jvm(3)

一、双亲委派机制&#xff08;类加载机制中&#xff0c;最经常考到的问题&#xff09; 类加载的第一个环节中&#xff0c;根据类的全限定类名&#xff08;包名类名&#xff09;找到对应的.class文件的过程。 JVM中进行类加载的操作&#xff0c;需要以来内部的模块“类加载器”…...

C++ for QWidget:connect(连接)

语法&#xff1a; QObject::connect(发射信号的对象,发射的信号,接收信号的对象,接收后执行的命令) #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-&g…...

uni-app学习笔记七-vue3事件处理

本文主要用于记录vue3中的点击事件和change事件 点击事件&#xff1a;v-on:click,可简写为click change事件&#xff0c;用于监听值发生改变的的事件处理&#xff1a;change 示例代码&#xff1a; <template><view class"box" click"onClick"…...

【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率

C容器的实践与应用&#xff1a;轻松掌握set、map与multimap的区别与用法 一. 序列式容器与关联式容器1.1 序列式容器 (Sequential Containers)1.2 关联式容器 (Associative Containers) 二. set系列使用2.1 set的构造和迭代器2.2 set的增删查2.2.1 插入2.2.2 查找2.2.3 删除 2.…...

吴恩达机器学习(1)——机器学习算法分类

1、机器学习算法 1、监督学习 在实际应用中最为常见的快速进度结果 2、非监督学习 2、监督学习&#xff08;Supervised Learning&#xff09; 2.1、回归算法 [!note] 监督学习 是指学习从 x -> y 或者从输入到输出映射的算法 监督学习的关键特征是你给学习算法提供学习…...

我的创作纪念日——512天

2023 年 12 月 19 日&#xff0c;我撰写了第 1 篇记录型博客《数据结构课程设计——报数问题》&#xff0c;这是我记录一段实践经验的开始。 回望那时的自己&#xff0c;还很稚嫩&#xff0c;刚刚迈入计算机的大门不久&#xff0c;一切都显得新鲜而充满挑战。今天是我成为创作者…...

SpringBoot快速上手

1.Maven Maven是项目管理工具&#xff0c;通过pom.xml文件来获取jar包&#xff0c;而不用手动去添加jar包 引入依赖之后需要刷新maven&#xff0c;以下这两个地方都可以 中央仓库 &#xff1a; Central Repository: Maven Repository: Central 2.Spring Boot 2.1创建项目…...