1,run方法是Runnable接口中定义的,start方法是Thread类定义的。 所有实现Runnable的接口的类都需要重写run方法,run方法是线程默认要执行的方法,是绑定操作系统的,也是线程执行的入口。 start方法是Thread类的默认执行入口,Thread又是实现Runnable接口的。要使线程Thread启动起来,需要通过start方法,表示线程可执行状态,调用start方法后,则表示Thread开始执行,此时run变成了Thread的默认要执行普通方法。

2),通过start()方法,直接调用run()方法可以达到多线程的目的 通常,系统通过调用线程类的start()方法来启动一个线程,此时该线程处于就绪队列,而非运行状态,这也就意味着这个线程可以被JVM来调度执行。在调度过程中,JVM会通过调用线程类的run()方法来完成试机的操作,当run()方法结束之后,此线程就会终止。 如果直接调用线程类的run()方法,它就会被当做一个普通的函数调用,程序中任然只有主线程这一个线程。也就是说,star()方法可以异步地调用run()方法,但是直接调用run()方法确实同步的,因此也就不能达到多线程的目的。

注: run()和start()的区别可以用一句话概括:单独调用run()方法,是同步执行;通过start()调用run(),是异步执行。

start和run的区别相关推荐

  1. 线程中start()与run()的区别

    每个线程都有要执行的任务.线程的任务处理逻辑可以在Tread类的run实例方法中直接实现或通过该方法进行调用,因此 run()相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接 ...

  2. start与run的区别

    start与run的区别: public static void main(String args[]) {Thread t = new Thread() {public void run() {po ...

  3. start()方法和run()方法区别与多线程抢占式运行原理

    目录 start()与run()方法区别 多线程抢占式运行原理 start()与run()方法区别 我们通过一个例子来进行总结,我们写一个利用Thread创建的简单的多线程例子,然后分别执行start ...

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

    start() 和 run()的区别: 首先需要知道线程的几个状态以及多线程工作方式. new 一个Thread,线程进入了新建状态,调用start() 方法,会启动一个线程并使线程进入了就绪状态,当 ...

  5. start()和run()的区别

    start方法: 通过该方法启动线程的同时也创建了一个线程,真正实现了多线程.无需等待run()方法中的代码执行完毕,就可以接着执行下面的代码.此时start()的这个线程处于就绪状态,当得到CPU的 ...

  6. [面试] Thread 中 start() 和 run() 的区别都不知道,还怎么混?

    引子 最近面试了不少 Java 工程师,有一些心得体会想给大家分享,比如,上次就有一个小哥被我 "送走" 了,我尽量复原一下当时的面试情景,对话大致如下: 我:我们知道,JDK 中 ...

  7. npm run dev 和 npm run serve区别

    在运行vue文件时,需要进行npm操作,但我们发现,有时候用的是npm run serve,而有的时候用的是npm run dev,二者有什么区别 在我们运行一些 vue 项目的时候,输入npm ru ...

  8. java thread start0_Java: Thread类中start()和run()的区别

    版本:JDK1.8 thread的两种使用方式: //继承Thread类 NewThread thread = newNewThread();//调用默认的构造方法,父类也会调用默认的 thread. ...

  9. Thread的run()与start()的区别

    Java中thread的start()和run()的区别: 1.start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码: 通过调用Thread ...

最新文章

  1. Symfony笔记之--控制器的快捷方法
  2. linux c 链接详解4-共享库
  3. 使用Git将最新提交移至新分支
  4. mysql用户名长度_如何增加PhpMyAdmin / mysql用户帐户的用户名长度?
  5. 差分定位中控软件_【最佳实践】海口美兰国际机场车辆定位管理系统应用
  6. python数据分析基础教程考试试卷_Python数据分析-自测试卷5
  7. php 实时监测网站是否异常_网站监控劫持问题,怎么通过网站监控解决劫持问题...
  8. mysql group by 重复_mysql – 使用GROUP BY删除重复项的查询
  9. 在大公司天天调参数,感觉快废了~
  10. Mesos和Marathon下容器无法正常部署可能的原因
  11. 基于netty构建http服务器
  12. 阅读《经济学人》,学会这样查词典,从此英语学习不求人
  13. “元宇宙”是个啥?都有哪些大招?
  14. STM32开发日记002:KEIL5安装教程
  15. 虚拟机无法服务器系统安装win7系统,如何解决虚拟机安装Win7系统失败的问题
  16. 算数平均法和加权平均法
  17. 坚果pro3刷miui_坚果Pro3刷机包
  18. phpStudy2018中Apache启动失败
  19. idea TODO功能使用
  20. TCP的三次握手与四次挥手

热门文章

  1. 微信小程序 实现地图
  2. wolfSSL错误码-188
  3. python从多层循环嵌套中退出只能使用goto_goto语句只能用于退出多层循环.doc
  4. HTablePool 在Hbase 0.94、0.95、0.97被废弃,在0.98中被清除( HTablePool 对比HConnection.getTable),hbase0.98
  5. DISN:Deep Implicit Surface Network for High-quality Single-view 3D Reconstruction
  6. java整除输出_Java程序输出可被其他数字整除的数字
  7. 应用计算机解数学模型之我见,现代教育技术在数学中应用之我见.doc
  8. 【小程序地图】uniapp开发微信小程序,显示地图功能,且点击后打开高德或腾讯地图。
  9. NLP-Beginner:自然语言处理入门练习----task 2基于机器学习的文本分类
  10. Git更新代码到本地