首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么线程的start和run方法不返回任何东西?

线程的start和run方法不返回任何东西是因为它们是用于启动线程和执行线程任务的方法,并不需要返回结果。下面是对这个问题的详细解答:

线程是程序执行的基本单位,它可以在程序中独立运行,实现多任务并发执行。在Java中,线程的创建和启动通常通过创建Thread类的实例,并调用start方法来实现。

  1. start方法:
    • 概念:start方法用于启动一个新线程,并使其开始执行run方法中的任务。
    • 分类:start方法属于Thread类的方法,用于启动一个新线程。
    • 优势:通过start方法启动线程,可以实现多线程并发执行,提高程序的执行效率。
    • 应用场景:适用于需要并发执行的任务,如多线程下载、并行计算等。
    • 腾讯云相关产品:腾讯云提供了云服务器CVM、容器服务TKE等产品,可以用于部署和管理多线程应用。具体产品介绍请参考腾讯云官网:腾讯云产品介绍
  • run方法:
    • 概念:run方法是线程的执行体,包含了线程要执行的任务代码。
    • 分类:run方法属于Runnable接口的方法,需要在Thread类的构造方法中传入Runnable对象,并在run方法中实现任务逻辑。
    • 优势:通过实现Runnable接口并重写run方法,可以实现线程的任务逻辑与线程的启动和管理分离,提高代码的可维护性和复用性。
    • 应用场景:适用于需要将任务逻辑与线程管理分离的场景,如线程池、定时任务等。
    • 腾讯云相关产品:腾讯云提供了云函数SCF、容器服务TKE等产品,可以用于部署和管理基于Runnable接口的任务。具体产品介绍请参考腾讯云官网:腾讯云产品介绍

总结:线程的start和run方法不返回任何东西是因为它们的目的是启动线程和执行线程任务,而不是返回结果。通过调用start方法启动线程,线程会在后台执行run方法中的任务逻辑。这种设计可以实现多线程并发执行,提高程序的执行效率。在实际应用中,可以根据具体需求选择合适的线程启动方式,并结合腾讯云提供的相关产品进行部署和管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入线程Thread类start()方法run()方法

每个线程都是通过某个特定Thread对象所对应方法run()来完成其操作方法run()称为线程体。通过调用Thread类start()方法来启动一个线程。...在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞死亡。   第一是创建状态。在生成线程对象,并没有调用该对象start方法,这是线程处于创建状态。   第二是就绪状态。...二、start()方法 1、为什么需要start方法;它作用是什么? start()方法来启动线程,真正实现了多线程运行。 start方法作用就是将线程由NEW状态,变为RUNABLE状态。...总结: 通过实例1实例和我们可以知道start方法是用于启动线程,可以实现并发,而run方法只是一个普通方法,是不能实现并发,只是在并发执行时候会调用。...四、start()方法run()方法源码解析(基于JDK1.7.0_40) public synchronized void start() { // 如果线程不是"就绪状态

2.8K00

Thread类run()start()方法区别

1、线程start()方法   start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码: 通过调用Thread类start()方法来启动一个线程...然后通过此Thread类调用方法run()来完成其运行操作,这里方法run()称为线程体,它包含了要执行这个线程内容,Run方法运行结束,此线程终止,而CPU再运行其它线程。...Thread-1---1 Thread-1---2 Thread-1---3 总结   调用start方法方可启动线程,而run方法只是thread一个普通方法调用,还是在主线程里执行。...这两个方法应该都比较熟悉,把需要并行处理代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由jvm内存机制规定。...并且run()方法必须是public访问权限,返回值类型为void.。

27530

线程 start run 方法到底有什么区别?

今天,栈长会详细介绍 Java 中线程 start() run() 两个方法,Java 老司机请跳过,新手或者对这两个不是很理解可以继续往下看。...而 Runnable 接口定义了唯一一个 run() 方法,所以基于 Thread Runnable 创建多线程都需要实现 run() 方法,是多线程真正运行方法。...类方法,用来异步启动一个线程,然后主线程立刻返回。...那么你会问了,为什么要有两个方法,直接用一个 run() 方法不就行了吗!? 还真不行,如果直接调用 run() 方法,那就等于调用了一个普通同步方法,达不到多线程运行异步执行,来看下面的例子。...看完这篇,你应该对 start run 方法有了一个大概掌握吧,再也不怕面试官问你这两个区别了吧!

1.3K10

thread类中start()run()方法区别

run方法体代码执行完毕而直接继续执行下面的代码: 通过调用Thread类start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。...3,调用start方法方可启动线程,而run方法只是thread一个普通方法调用,还是在主线程里执行。...这两个方法应该都比较熟悉,把需要并行处理代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由jvm内存机制规定。...并且run()方法必须是public访问权限,返回值类型为void。...4,还有就是尽管线程调度顺序是固定,但是如果有很多线程被阻塞等待运行,调度程序将会让优先级高线程先执行,而优先级低线程执行频率会低一些。

4K00

RunStart区别,线程生命周期,优先级,礼让守护线程

线程常用方法线程状态 线程生命周期图,及其调用线程方法会改变状态 ?...调用runstart()区别 package org.dance.day1; import org.dance.tools.SleepTools; /** * 线程调用 run start...(){ ThreadRun thread = new ThreadRun(); thread.setName("run"); // 调用线程Run方法...// 调用线程Run方法 thread.start(); // 执行结果 // I am run and now the i = 90 } }...:   取值为1~10,缺省为5,但是线程优先级并不可靠,建议作为线程开发时候手段,因为有的操作系统可能会忽略线程执行优先级,所以开发中需要将这个不确定因素列如其中 设置线程优先级方法,在源码中可以看见最小是

34141

「附数据结构资源」玩转java并发(六):深入线程Thread类start()方法run()方法

每个线程都是通过某个特定Thread对象所对应方法run()来完成其操作方法run()称为线程体。通过调用Thread类start()方法来启动一个线程。...在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞死亡。   第一是创建状态。在生成线程对象,并没有调用该对象start方法,这是线程处于创建状态。   第二是就绪状态。...二、start()方法 1、为什么需要start方法;它作用是什么? start()方法来启动线程,真正实现了多线程运行。 start方法作用就是将线程由NEW状态,变为RUNABLE状态。...总结: 通过实例1实例和我们可以知道start方法是用于启动线程,可以实现并发,而run方法只是一个普通方法,是不能实现并发,只是在并发执行时候会调用。...四、start()方法run()方法源码解析(基于JDK1.7.0_40) 1 public synchronized void start() { 2 // 如果线程不是

37120

如何给run方法传参?如何处理线程返回值?

run()方法传参实现方式主要有三种 构造函数传参 成员变量传参 回调函数传参 如何实现处理线程返回值 主线程等待法 优点:实现简单 缺点需要自己实现循环逻辑,循环时间自己无法精准控制 使用...Thread类join()阻塞当前线程以等待子线程处理完毕 通过Callable接口实现:通过FutureTask Or 线程池获取 通过FutureTask方法实现机制或者说基础 1.FutureTask...),若call()没执行完毕会阻塞住,如果执行完会返回Callable实例返回线程池获取 原理FurureTask差不多,通过线程池submit一个Callable实例会返回一个Future...Future也具有FutureTask相同方法功能 使用线程好处:``可以提交多个实现callable类,让线程池并发处理, 方便管理 主线程等待法 join改造上面的主线程只需要替换那个...while循环即可 FutureTesk+Callable实现线程返回值 相同Callable,线程实现

2.6K30

某大型国企Java岗位面试题,你能做出几道?

为什么呢? 这个问题深入探讨了Java内存模型(JMM)及其对多线程程序可见性重排序影响。...在多线程环境中,由于编译器优化、处理器优化以及运行时JIT编译优化,操作执行顺序可能会与代码中顺序不同。这种优化可能会影响到变量可见性程序执行顺序。 A. 程序无限循环,不输出任何东西。...这是在ready变量更新对另一个线程可见,并且这个更新在number变量被设置为42之后被检测到情况下可能发生结果。 C. 不保证总能输出"42",有时可能不输出任何东西。 这是最准确描述。...选择正确选项。 A. new Dog() B. new Cat() C. myDog D. myCat 正确答案:B. new Cat() 为什么呢? 本题考察了Java中多态性理解应用。...B. new Cat() - 这是正确选项。尽管Cat类重写了speak方法返回"Meow",但特定于Cat方法purr返回"Purr"。

14910

Java 多线程(超详细)

进程从来执行任何东西,它只是线程容器。线程总是在某个进程环境中创建,而且它整个寿命期都在该进程中。...线程启动终止 线程启动 • 线程启动需要调用Threadstart方法,不能直接调用run方法,如果直接调用run方法相当于方法调用。...线程终止 • 当run方法返回线程终止,一旦线程终止后不能再次启动。 • 线程终止可以调用线程interrupt方法,但该方法不是最佳方法,最好是设置一个标记来控制线程终止。...线程控制基本方法 • Thread类有关方法(1) – void start():启动线程并执行对象run()方法run():线程在被调度时执行操作 – String getName...接口 RunnableCallable区别: 1、Callable规定方法是call(),Runnable规定方法run(). 2、Callable任务执行后可返回值,而Runnable

26730

-1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()wait()方法区别 为什么wait(),

本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()wait()方法区别 为什么wait()...2.建立子类对象同时线程也被创建。 3.通过调用start方法开启线程。 创建线程方式二 实现Runnable接口 1.子类覆盖接口中run方法。...启动一个线程run()还是start()?它们区别?        ...start();         run():封装了被线程执行代码,直接调用仅仅是普通方法调用         start():启动线程,并由JVM自动调用run()方法 线程调度优先级 线程调度...过时 •public void interrupt() 停止线程还可以通过定义循环控制标志来解决现成停止问题 sleep()wait()方法区别         sleep():必须指时间;释放锁

58340

怎么查看线程状态及interrupt优雅关闭线程interrupt()、interrupted()、isInterrupted()作用以及区别在哪?

").start(); } static class BlockClass extends Thread{ public void run(){ synchronized(BlockClass.class...所以我可以强制去关闭线程线程提供一个stop方法,该方法建议使用,已经过时了!! 因为stop是强行关闭线程线程里面的任务都不在执行,不管线程任务是否执行成功与否,就算执行到一半也会强制关闭!...所以线程肯定有2种状态 初始(NEW) 新创建了一个线程对象,但是没有调用start()方法 终止(TERMINATED) 这个线程执行完毕 除了这2种状态外,线程还有以下几种状态 运行(RUNNABLE...) 我们线程开启是需要start ,所以初始化后,有个运行状态 等待(WAITING) 进入该状态线程需要等待其他线程做出一些特定动作,线程进入了这个状态一般调用了 Object.wait()...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

46730

怎么查看线程状态及interrupt优雅关闭线程interrupt()、interrupted()、isInterrupted()作用以及区别在哪?

").start(); } static class BlockClass extends Thread{ public void run(){ synchronized(BlockClass.class...所以我可以强制去关闭线程线程提供一个stop方法,该方法建议使用,已经过时了!! 因为stop是强行关闭线程线程里面的任务都不在执行,不管线程任务是否执行成功与否,就算执行到一半也会强制关闭!...* The thread has completed execution. */ TERMINATED; } 其实我们想一下,任何东西生命周期都是开始与死亡!!...所以线程肯定有2种状态 初始(NEW) 新创建了一个线程对象,但是没有调用start()方法 终止(TERMINATED) 这个线程执行完毕 除了这2种状态外,线程还有以下几种状态 运行(RUNNABLE...) 我们线程开启是需要start ,所以初始化后,有个运行状态 等待(WAITING) 进入该状态线程需要等待其他线程做出一些特定动作,线程进入了这个状态一般调用了 Object.wait()

31830

【Java线程基础】01.线程实现方式千万种,为何独终于你一种.md

run() 方法实例传到 Thread 类中调用start()方法就可以启动线程了。...创建线程,Runnable 创建线程是无返回,而 Callable 与之相关 Future、FutureTask,它们可以把线程执行结果作为返回返回,如代码所示,实现了 Callable...详细内容我们这里先讨论。 其实第3、4种方式本质也是实现Runnable接口。 线程实现本质是什么?为什么线程只有一种实现?...经过上面的讨论,我们可以得知,第2、3、4种本质都是通过实现Runnable接口来触发run()方法来实现多线程功能。那ThreadRunnable两种本质是什么呢?...[] args) { new ThreadExtends().start(); } } 这个调用start()方法时候,由于Thread 中run()方法被 ThreadExtends

15430

Android多线程编程——线程基础

等待状态不同是,它是可以在指定时间自行返回。 Terminated 终止状态。 表示当前线程已经执行完毕。...导致线程终止有两种情况: 第一种就是run方法执行完毕正常退出;第二种就是因为没有一个捕获异常而终止了 run方法,导致线程进入了终止状态。...线程创建后,调用Thread Start方法,开始进入运行状态,当线程执行 wait 方法后,线程进入等待状态,进入等待状态线程需要其他线程通知才能返回运行状态。...但调用 Future get() 方法以获取结果是,当前线程就会阻塞,直到 call 方法返回结果。...run方法执行完毕,或者在方法中出现没有捕获异常时,线程将终止。

34030

快速掌握并发编程---基础篇

面试时候时长会被问start方法run方法区别,笔试中遇到概率是非常高start方法是启动一个线程,而run方法是普通实例方法调用而已。...使用` ExecutorService、Callable、Future `实现带返回结果线程 从继承Thread类实现Runnable接口可以看出,上述两种方法都不能有返回值,且不能声明抛出异常。...线程启动原理 我身边很多小伙伴对于线程启动,还是处于朦胧状态,说不懂但是知道调用start方法,就启动了线程。但是为什么不是调用run方法呢?这可能是很多人都不知道。...* * 结果是 调用start方法的当前线程 执行run方法另一个线程 同时运行。...虽然 api 仍然可以调用,但是其他线程控制方法如 suspend、resume 一样都是过期了建议使用,就拿 stop 来说,top 方法在结束一个线程时并不会保证线程资源正常释放,因此会导致程序可能出现一些不确定状态

30520

线程创建方式对比与线程池相关原理剖析

1、线程创建 线程创建无非就是以下几种方式: 采用直接集成Thread类,并重写run方法 实现Runnable接口,并重写run方法 实现有返回Callable接口,重写call方法 采用线程池...(建议使用Executors来创) 前三种方式建议在程序中直接使用,这就是为什么我们要采用线程问题?...2、在使用Runnable定义子类中没有start()方法,只有run()方法,只有Thread类中才有start()方法。...适合于资源共享 那么start()方法run()方法有什么区别呢? 穿插问题四、start()方法run()方法有什么区别?...这个问题看我之前写过一篇文章: start()方法run()方法区别与多线程抢占式运行原理.

23620

Java多线程面试题(面试必备)

创建线程 3.1 创建线程四种方式 3.2 Runnable接口Callable接口有何区别 3.2 run()方法start()方法区别 3.3 为什么调用start()方法会执行run()...相同点: RunnableCallable都是接口 都可以编写多线程程序 都采用Thread.start()启动线程 不同点: Runnable接口run方法返回值,Callable接口call方法返回值...3.2 run()方法start()方法区别 每个线程都是通过某个特定Thread对象对于run()方法来完成其操作run方法称为线程体,通过调用Thread类start方法来启动一个线程...start()方法用于启动线程run()方法用于执行线程运行代码,run()可以反复调用,而start()方法只能被调用一次。 start()方法来启动一个线程,真正实现了多线程运行。...3.3 为什么调用start()方法会执行run()方法为什么不能直接调用run()方法 这是一个常问面试题,new Thread,线程进入了新建状态,start方法作用是使线程进入就绪状态,

80320

并发编程基础

start()方法是一个native方法,它会 启动一个新线程,并执行run()方法。...NEW   初始状态,线程被构建,但是还没有调用start方法 。 RUNNABLED   运行状态,JAVA线程把操作系统中就绪运行两种状态统一称为“运行中” 。...,而是随着代 码执行在不同状态之间进行切换 线程启动   前面我们通过一些案例演示了线程启动,也就是调用 start()方法去启动一个线程,当run方法代码执行完毕 以后,线程生命周期也将终止...线程启动原理   最早学习线程时候会比较疑惑,启动一个线程 为什么是调用start方法,而不是run方法,这做一个简单 分析,先简单看一下start方法定义 。 ?...虽然api仍 然可以调用,但是其他线程控制方法如 suspend、 resume 一样都是过期了建议使用,就拿 stop 来说, stop方法在结束一个线程时并不会保证线程资源正常释 放,因此会导致程序可能出现一些不确定状态

29630

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券