• 启动线程的正确方式是运行Thread类中的start()方法,使用run()方法只不过是运行了一个普通方法而已。

线程对象在初始化之后,由当前线程(主线程)执行的start()方法,然后去告诉jvm虚拟机在有空闲的情况下来运行这个新线程,线程何时运行是由线程调度器来决定的,start()调用结束以后并不意味就开始运行,可能稍后运行,也有可能很长时间不会运行(遇到饥饿的情况)。

start()方法会让两个线程同时运行,首先得有一个主线程(父线程)来执行启动这个方法吧,也就说创建一个线程是由主线程(或者父线程再或者其它线程)来启动的。

start()只能启动一次,不能重复执行。如果第二次启动会抛出一个IllegalThreadStateException 非法线程状态异常,在启动的时候会检查线程状态,如果状态 threadStatus!=0则会抛出异常。

最后会调用一个private native void start0(); 本地方法(非java代码 C、C++)来创建线程。

java 中启动线程的正确方式相关推荐

  1. 不允许使用java方式启动_细品 Java 中启动线程的正确和错误方式

    细品 Java 中启动线程的正确和错误方式 前文回顾详细分析 Java 中实现多线程的方法有几种?(从本质上出发) start 方法和 run 方法的比较 代码演示:/** * * start() 和 ...

  2. 线程组多次调用_详细分析 Java 中启动线程的正确和错误方式

    start 方法和 run 方法的比较 代码演示: /** *  * start() 和 run() 的比较  *  *  * @author 踏雪彡寻梅  * @version 1.0  * @da ...

  3. 线程启动语句的顺序是否决定线程的执行次序。_详细分析 Java 中启动线程的正确和错误方式

    start 方法和 run 方法的比较 代码演示: /** * * start() 和 run() 的比较 * * * @author 踏雪彡寻梅 * @version 1.0 * @date 202 ...

  4. Java中创建线程的三种方式

    Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)继承Thread类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. ...

  5. java构造函数中启动线程_通过构造器启动线程的实现方式及其缺点记录。

    说明:在构造器中启动线程会很有问题,因为另一个任务可能会在构造器结束之前开始执行,导致该任务会访问到处于不稳定状态的对象.这也是优选Executor而不是显示创建Thread对象的原因. 如下俩种实现 ...

  6. java构造函数中启动线程_java-为什么不在构造函数中启动线程? 如何终止?

    java-为什么不在构造函数中启动线程? 如何终止? 我正在学习如何在Java中使用线程. 我写了一个实现Runnable的类,以同时运行到另一个线程. 主线程处理侦听串行端口,而第二个线程将处理向同 ...

  7. java匿名启动线程_使用匿名内部类:来创建线程的两种方式

    [Java]基础31:创建线程的两种方式 谢谢你的观看. 今天是我自学Java的第31天. 你的观看便是对我最大的鼓励. 话不多说,开始今天的学习: 线程的创建有两种方式,昨天学习过其中的一种: 创建 ...

  8. Java中的线程基础篇-线程基本概念

    线程的概念.创建方式.生命周期.优缺点 一.基础知识 1. 进程.线程.协程 1.1 进程 1.2 线程 1.3 协程 2. 串行.并发.并行 2.1 串行 2.2 并发 2.3 并行 二.线程的创建 ...

  9. Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。...

    java中,线程的状态使用一个枚举类型来描述的.这个枚举一共有6个值: NEW(新建).RUNNABLE(运行).BLOCKED(锁池).TIMED_WAITING(定时等待).WAITING(等待) ...

最新文章

  1. golang 第三方包的使用总结
  2. C#反射使用方法过程及步骤
  3. 一分钟学会使用RichEdit控件
  4. Android组件化开发实践(九):自定义Gradle插件
  5. 【2018.4.7】模拟赛之五-ssl2386 序列【dp】
  6. [css] 用CSS实现一个轮播图
  7. 云联惠身份认证得多久_【转发扩散】你完成认证了吗?老来网APP也可以刷脸认证哦!...
  8. Linux 文件描述符的概念及与文件流指针的关系
  9. In addition, Microsoft is also developing
  10. 华为机试HJ14:字符串排序
  11. 实战爬虫:python爬虫之爬取虎扑湖人专区新闻中科比相关新闻
  12. html使表格位于页面的右下方,在HTML表格的右下角显示一个数字以显示齐平
  13. java编码规范试题_java编码规范考试题答案完整版.doc
  14. AMapLocationListener 高德地图定位监听
  15. swagger注解类说明
  16. 【保姆级入门系列】阿ken教你学Python(六) ——组合数据类型
  17. linux pbs提交作业命令,PBS Pro的安装及其作业管理命令
  18. LeCo-206反转链表
  19. Linux 中实用但很小众的 11 个炫酷终端命令
  20. 怎么文字扫描识别?看完这篇你就会了

热门文章

  1. 教程:2、第一个Python程序
  2. 教程:1、Linux简介
  3. 7-19 支票面额 (C语言)
  4. c++ 重载 重写_Java | 深入理解方法调用的本质(含重载与重写区别)
  5. java out.write ie8_整理一下最近遇到的ie8兼容问题
  6. 应届生想要获取web前端开发岗位?这份技能攻略,面试攻略别错过!
  7. Ubuntu软件包管理相关部分命令
  8. vue小项目总结与笔记【五】——一个轮播图插件vue-awesome-swiper
  9. zabbix3.2监控redis
  10. APP检测软件更新逻辑