调用start()方法和直接调用run()方法的区别

调用start()方法和直接调用run()方法的区别

 

        新建一个线程,只需要使用new关键字创建一个线程对象,并且调用start()方法即可。

Thread thread = new Thread();
thread.start();

         start()方法会新建一个线程,并且让这个线程执行run()方法。

 

         看下面:

Thread thread = new Thread();
thread.run();

          这样也能正常执行。但是,却不能新建一个线程,而是在当前线程中调用run()方法,只是作为一个普通的方法调用。

 

         不要用run()来开启新线程,它只会在当前线程中,串行执行run()方法中的代码。

 

 

我想自己组装一台服务器,微调大模型通义千问2.5 Omni 72B,但是我是个人购买,资金非常有限,最省的方案 阶段动作✅ 推理用 GGUF + llama.cpp + 4090 加载 14B INT4✅ 微调训练 Qwen2.5-7B-Chat,使用 LoRA / QLoRA❌ 放弃Qwen2.5-Omni-72B 全量微调(显存需求 >160G,不现实) 阅读详情

相关推荐

【MNE脑电信号处理学习笔记1】数据的读取、可视化、剪裁、滤波和保存

MNE之读取原始数据、可视化数据、剪裁数据、滤波和保存 Reading & visualizaing raw data, cropping, filtering, and saving 原视频教程:Pybrain: M/EEG analysis with MNE Python 原笔记和材料:pybrain_mne 本文根据视频和个人理解对原笔记进行细微修改。 Import the few packages we’ll need import matplotlib import pathlib i

小白家 4217

run() 和 start()的区别

不会启动一个新的线程。

m0_74312445的博客 2268

Python 实现 傅里叶级数 对 函数拟合 并绘图

好记性不如烂笔头 目录傅里叶级数变换原理代码实现效果图 傅里叶级数变换原理 原理:待续… 傅里叶级数变换公式: 代码实现 本次实现的是符号函数的拟合: 注:若要实现其他函数的拟合,修改程序中 fx 的表达式即可 """ 傅里叶级数""" import sympy as sym import numpy as np import matplotlib.pyplot as plt N = 8 # 拟合的阶数 L = sym.pi # 周期的一半 n, x = sym.symbols('n x')

qq_41676952的博客 1万+

线程start() 和 run()的区别

首先需要知道线程的几个状态以及多线程工作方式。 new 一个Thread,线程进入了新建状态,调用start() 方法,会启动一个线程并使线程进入了就绪状态,当分配到 时间片 后就可以开始运行了。start() 会执行线程的相应准备工作,然后自动执行run() 方法的内容,这是真正的多线程工作。 而直接执行run() 方法,会把run 方法当成一个main 线程下的普通方法去执行,并不会在某个线程中执行它,所以这并不是多线程工作。 总的来说:调用start 方法方可启动线程并使线程进入就绪状态,而run

weixin_38568503的博客 8484

NAO V6 开发环境的配置(附所有文件)

NAO V6开发环境配置前言环境Robot SettingsChoregraphe 2.8.5.10python2.7+naoqi2.8+opencv4.1.0putty与FileZilla 前言 学校的机器人摸索了一段时间,之前摸爬滚打探索环境,之前没接触这类机器人可能会非常艰辛,希望能给需要的人一些帮助。Nao与pepper通用 环境 win10(x64)+naoqi2.8 1、Robot S...

wbhhello的博客 3220

Pyinstaller 打包 Pyzbar 时缺失 DLL 文件的排查与修复指南

本文详细解析了使用Pyinstaller打包Pyzbar库时,因缺失关键DLL文件导致程序闪退的常见问题。文章提供了从问题复现、错误诊断到最终修复的完整解决方案,核心在于通过修改.spec配置文件,手动将缺失的libzbar-64.dll等文件添加到打包过程中,确保生成的可执行文件能独立运行。

wdx012345的博客 504

run()方法和start()方法的区别

一、start()和run()方法的区别: 1、start方法用来启动相应的线程; 2、run方法只是thread的一个普通方法,在主线程里执行; 3、需要并行处理的代码放在run方法中,start方法启动线程后自动调用run方法; 4、run方法必须是public的访问权限,返回类型为void。 二、进一步的理解 线程的run()方法是由java虚拟机直接调用的,如果我们没有...

Evan's Blog ٩(๑❛ᴗ❛๑)۶ 1万+

用c++生成随机迷宫_自动生成随机迷宫(1)prim算法

“程序 = 数据 + 算法”,一款好的作品不单单是代码的堆砌,还有其灵魂的部分,那就是算法;算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法既然是解决某类型问题的规范,那么我们就学习它,并在我们的作品中使用它。从这一期开始做一个迷宫系列,包括用算法生成随机迷宫,用算法自动寻址走迷宫。 三大迷宫生成算法之一“随机Prim算法不是...

weixin_31787547的博客 2599

start()方法和run()方法

一、start()方法 1、start()方法含义 1、启动新线程。当我们执行了start()方法之后这个线程不一定会立刻执行,其实是在告诉jvm中的线程调度器在合适的时间去启动。例如:我们可能会创建两个线程,分别是线程1和线程2,但线程1先调用start()方法,线程2后调用,缺发现线程2先执行,这其实是不违背启动顺序的。也就是说调用start()方法的顺序并不能决定执行的顺序。 2、一个...

我是太阳 4887

DSP开发环境及工具之CCS

CCS( Code Composer Studio)是美国德州仪器(TI)公司的嵌入式处理器的开发环境,可以用于TI公司的各个系列处理器的软件开发和调试,如DSP,MCU,ARM等。CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件。从其名称可以看出,该文件的作用是指明如何链接程序的。编辑完C语言设置,添加cmd文件之后,然后检查编译配置选项。主要的操作都是在这个窗口之间做相应的切换。

小柚子的博客 4313

6.6kW的车载充电器(On-Board Charger, OBC)电路分析

图片展示了6.6kW的车载充电器(On-Board Charger, OBC)电路,其中包含双向和单向两种拓扑结构。接下来我们将深入分析每个模块的设计、原理及其优势,以帮助理解不同结构在实际应用中的选型和应用。

weixin_43199439的博客 5676

Java创建线程之后,直接调用start()方法和run()的区别?

方法时,Java 虚拟机(JVM)会为该线程分配必要的资源,创建一个新的线程,并且让这个新线程执行。方法后,程序不会等待新线程执行完毕,而是会继续执行后续代码。方法,它就和调用普通的方法一样,不会创建新线程。此过程是异步的,也就是说,调用。方法里的代码会在当前线程中执行,也就是调用。方法里的代码会在主线程中执行,主线程会等待。方法后,JVM 会创建一个新线程并执行。方法执行完毕后,才会继续执行后续代码。这种情况下,程序会等待。方法执行完毕后,才会继续执行。方法,而主线程会继续执行。若直接调用线程对象的。

Li2992673708的博客 296

11、基于多阵列电极的表面肌电信号运动估计

本文介绍了一种基于多阵列电极的表面肌电信号运动估计技术,旨在实现对手腕和手指运动的高精度估计,解决传统人机接口在操控多自由度机器人时的局限性。通过多阵列电极系统采集前臂肌肉活动信号,结合独立成分分析(ICA)和非负矩阵分解(NMF)等信号处理方法,提取肌肉协同作用,进而生成运动指令以控制机器人或假肢手。文章对比了多阵列电极与传统电极的优势,展示了运动估计算法的整体流程,并以假肢手控制为例说明其实际应用。最后探讨了该技术在测量精度、应用拓展、智能化和便携化等方面的未来发展方向。该技术为假肢控制、康复训练和人机

ik678901234的博客 87

Thread直接调用run()和start()方法的区别

Thread类中run()和start()方法的区别如下:         run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;         start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个

datarookie 8850

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

sleep()方法和wait()方法有什么共同点和区别?Thread类中调用start()方法时,会执行run()方法,那为什么不能直接调用run()方法呢?

sleep()方法,是Thread类的静态方法,当前线程将睡眠n毫秒,线程进入阻塞状态。当睡眠时间到了,会解除阻塞,进入就绪状态,等待分配CPU时间片。睡眠时不释放锁(如果有的话)。wait()方法,是Object的方法,必须与synchronized关键字一起使用,调用后,线程进入阻塞状态,当其它线程调用notify()方法或者notifyAll()方法唤醒它后,当前线程就会解除阻塞状态。睡眠时,会释放互斥锁。但是,只有重新占用互斥锁之后,才会进入就绪状态。

xiaozhi6yyy18的博客 318

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java:直接调用 Runnable的run()方法和 用 new Thread(new Runnable(){...}).start() 方法的区别

直接调用run()方法,其实就是普通调用,没有另开线程。而如下调用才能另开线程。

justlpf的专栏 773

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

直接调用 Java 线程的 run() 方法会发生什么?

`直接调用 run() 方法不会启动一个新的线程,它只是普通方法调用,代码在当前线程中同步顺序执行。`

Lorin 洛林的后端技术小站 1238

为什么start方法不能重复调用?而run方法却可以?

初学线程时,总是将 run 方法和 start 方法搞混,虽然二者是完全不同的两个方法,但刚开始使用时很难分清,原因就是因为初次使用时效果貌似是一样的,如下代码所示: public static void main(String[] args) { // 创建线程一 Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.p

CRMEB小程序商城的博客 1918

java线程中start()和run()的区别

java线程中start()和run()的区别

weixin_68105699的博客 4337

线程为什么调用start()而不是直接调用run()

run()方法只是一个类中的普通方法,直接执行和普通的方法没有设么两样 start()方法则不同,它首先做了创建线程等一系列工作,然后调用行的run()方法 新建线程 Thread thread = new Thread(); thread.start(); 这样就开启了一个线程。 有一点需要注意的是 Thread thread = new Thread(); thread.run...

qq_40108025的博客 1260

Thread类中的start()方法和run()方法

Thread类中的start()方法和run()方法

m0_60742341的博客 1899

Java 多线程:run() 和 start() 方法的区别

1. 什么是 run() 方法? 定义:run() 是线程的核心逻辑所在,定义了线程需要执行的任务。 调用方式: 可以直接调用(像普通方法一样)。 也可以通过 start() 间接调用。 特点: 直接调用时,任务在当前线程中执行,不会启动新线程。 是 Thread 类和 Runnable 接口中任务逻辑的实现方法。 示例代码:直接调用 run() public class RunExample { public static void main(String[] args) {

Abladol的博客 850

Java线程中run()和start()的区别

今天看了下Java线程方面视频,然后有个疑问就是线程的run()和start()的区别是怎样子的?   假如我们创建一个线程 Thread t1 = new Thread()。那么区别如下: t1.run(); 只是调用了一个普通方法,并没有启动另一个线程,程序还是会按照顺序执行相应的代码。 t1.start(); 则表示,重新开启一个线程,不必等待其他线程运行完,只要得到cup就可以运行该线程。...

drddzh的博客 453

线程基础:start方法和run方法的区别

如果直接调用线程类的run()方法,这会被当做一个普通的函数调用,程序中仍然只有主线程这一个线程,也就是说,start()方法能够异步地调用run()方法,但是直接调用run()方法却是同步的,因此也就无法达到多线程的目的。示例代码。

愿你我都能实现自己的梦想 584
上一篇: java判断字符串是否回文
下一篇: ArrayList与Vector的区别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值