start方法:

通过该方法启动线程的同时也创建了一个线程,真正实现了多线程。无需等待run()方法中的代码执行完毕,就可以接着执行下面的代码。此时start()的这个线程处于就绪状态,当得到CPU的时间片后就会执行其中的run()方法。这个run()方法包含了要执行的这个线程的内容,run()方法运行结束,此线程也就终止了。

run方法:

通过run方法启动线程其实就是调用一个类中的方法,当作普通的方法的方式调用。并没有创建一个线程,程序中依旧只有一个主线程,必须等到run()方法里面的代码执行完毕,才会继续执行下面的代码,这样就没有达到写线程的目的。
而run方法是业务逻辑实现的地方,本质上和任意一个类的任意一个成员方法并没有任何区别,可以重复执行,被一个线程反复调用,也可以被单独调用
总结一下:
1.start() 可以启动一个新线程,run()不能
2.start()不能被重复调用,run()可以
3.start()中的run代码可以不执行完就继续执行下面的代码,即进行了线程切换。直接调用run方法必须等待其代码全部执行完才能继续执行下面的代码。
4.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. [面试] Thread 中 start() 和 run() 的区别都不知道,还怎么混?

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

  6. npm run dev 和 npm run serve区别

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

  7. start和run的区别

    1,run方法是Runnable接口中定义的,start方法是Thread类定义的. 所有实现Runnable的接口的类都需要重写run方法,run方法是线程默认要执行的方法,是绑定操作系统的,也是线 ...

  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. excel去掉超链接
  2. php的const,php中const入门
  3. 群晖系统挂载NTFS硬盘
  4. 在网页中插入百度地图
  5. 如何禁止网络爬虫频繁爬自己网站
  6. Extjs4:改变Grid单元格背景色(转载)
  7. 干货:嵌入式C语言源代码优化方案(非编译器优化)
  8. ArrayList与LinkedList
  9. php验证返回值,php接口返回数据 用echo 还是return?
  10. java mysql resultset_Java数据库——ResultSet接口
  11. Ambari——大数据平台的搭建利器之进阶篇[配置spark]
  12. 大型网站架构技术的核心价值是随网站所需灵活应对
  13. 一个全网最详细 Python 教程,不信你来学一学!
  14. jquery通过前缀removeClass
  15. 软件工程之功能性需求和非功能性需求
  16. Android 个人中心页面前端代码
  17. C基础第39课--程序中的三国天下--栈,堆,静态存储区
  18. 字符串转为Date类型
  19. Disruptor无锁ringbuff实现
  20. 项目经理的核心竞争力

热门文章

  1. VSTO 得到Office文档的选中内容(Word、Excel、PPT、Outlook)
  2. The Ransom of Red Chief
  3. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]42蒙哥马利乘法,哪里泄漏侧信道路吗?
  4. [签名算法]DSA 算法
  5. android 滚动尺画到控件中间,android 刻度尺控件实现
  6. nginx 上传 文件超时设置_Nginx在高并发下的性能优化点!有这篇就够了!
  7. mysql如何做计划任务_简单的mysql 过程计划任务
  8. php给留言分配id_简单实现PHP留言板功能
  9. wcf 返回图片_wcf http 返回图片
  10. controller调用controller的方法_SpringCloud(5):Feign整合Ribbon和Hystrix来进行远程调用与服务熔断...