Thread的start和run

1) start:

用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。

2) run:

run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。

总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。

转载于:https://blog.51cto.com/visionsky/431397

Java多线程中run和start的区别相关推荐

  1. Java多线程中Sleep与Wait的区别

    Java中的多线程是一种抢占式的机制,而不是分时机制.抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行. 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数, ...

  2. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  3. Java多线程中的ThreadLocal,可继承,可修改

    Java多线程中的ThreadLocal,可继承,可修改. package test;import java.util.Date;public class InheritableThreadLocal ...

  4. Java多线程中使用ReentrantLock、synchronized加锁 简单举例

    Java多线程中使用ReentrantLock.synchronized加锁 简单举例 public class Demo {final static Lock lock = new Reentran ...

  5. java 多线程的单例模式,Java多线程中的单例模式两种实现方式

    Java多线程中的单例模式 一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { priv ...

  6. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

  7. java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?

    转载自 java多线程中的死锁.活锁.饥饿.无锁都是什么鬼? 死锁.活锁.饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了. 死锁 死锁 ...

  8. Java多线程中static变量的使用

    Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果? Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果?仅仅是多耗资源还是会引发异 ...

  9. 【Java之多线程(二)】(***重要***)Java多线程中常见方法的区别,如object.wait()和Thread.sleep()的区别等

    1.Java中Thread和Runnable的区别??? 区别: 在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处: 避免点 ...

最新文章

  1. html 右边是iframe 左右结构_HTML速查表
  2. C#的winform拼数字游戏
  3. VC小技巧(三)视图
  4. C++虚继承下的内存模型(二)
  5. 安装ubuntu20.4+gtx1050+cuda11.3
  6. 如何修改ant-input的高度_水质自动采样器的流量计功能如何应用?
  7. python-字典数据类型-0222
  8. nginx与PHP配置
  9. python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)
  10. 进阶08 Collections实现类、Comparator比较器接口
  11. 【图像去噪】基于matlab中值滤波图像去噪【含Matlab源码 421期】
  12. Lingo 软件的使用 数学建模 司守奎
  13. Effective Tips on How to Get Rid of Your Acne Scars Using Acne Scar Home Remedies
  14. A Survey on Knowledge Graphs___Representation, Acquisition and Applications.知识图谱综述:表示,获取,应用
  15. 学习OpenCV双目测距原理及常见问题解答
  16. [JPBC] BigInteger 和 Element 的转换
  17. **将古典融汇到现代(二)一座连接蕴涵式和三段论的桥--皮尔斯逻辑之五**
  18. Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“(已解决)
  19. quartz建表语句
  20. esp8266最小系统似乎是可以直接用起来接在飞控上的

热门文章

  1. Camel中的几个重要概念之Routes, RouteBuilders 和 Java DSL
  2. Java语言基础22--访问权限
  3. React性能优化 PureComponent
  4. python __builtins__ float类 (25)
  5. React Native 轻松集成分享功能(Android 篇)
  6. ajax实现highchart与数据库数据结合完整案例分析(三)---柱状折线图
  7. 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
  8. iPhone客户端开发笔记(八)
  9. ScrollView’s handy trick
  10. npm run mock | npm run dev只能启动一个