文档章节

Thread的run()与start()

hello骡子
 hello骡子
发布于 2018/03/28 14:11
字数 468
阅读 7
收藏 0

Thread类包含start()和run()方法,有些人以为这两个方法作用一致,那就就大错特错了

start() 方法的作用是启动一个新线程,新线程会执行相应的run()方法,start()不能被重复调用。

而run()方法则只是普通的方法调用,在调用线程中顺序运行而已。

-------------------------------------------------------

简言,start()新开线程,并发跑。run()只是方法调用,并不新开线程,顺序执行。

--------------------------------------------------------

在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。
  第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。
  第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。
  第三是运行状态。线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码。
  第四是阻塞状态。线程正在运行的时候,被暂停,通常是为了等待某个时间的发生(比如说某项资源就绪)之后再继续运行。sleep,suspend,wait等方法都可以导致线程阻塞。
  第五是死亡状态。如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方法令其进入就绪。

 

 

参考链接:

https://blog.csdn.net/xuxurui007/article/details/7685076 

https://blog.csdn.net/u010568463/article/details/47911181

本文转载自:https://blog.csdn.net/xuxurui007/article/details/7685076

hello骡子
粉丝 1
博文 19
码字总数 7347
作品 0
昌平
程序员
私信 提问
java多线程方法

java多线程方法 进程是系统进行资源管理的基本单位; 线程是进程中独立的子任务 在使用多线程技术时,代码的运行结果与代码执行顺序或调用顺序是无关的 java是单继承不支持多继承,所以有run...

writeademo
2016/12/27
8
0
线程Thread类的start()方法和run()方法

一、初识 java的线程是通过类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法来完成其操作的,...

sihailoveyan
2018/05/26
17
0
java多线程 --run()和Start()的区别

Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答。本章内容包括: start() 和 run()的区别说明 start() 和 run()的区别示例 start() 和 run()相关源码(基于JDK1.7.0_...

Jasonisoft
2016/05/30
0
0
java 中两种多线程的区别,start方法和run方法的启动区别

直接上代码看的更清晰: 运行发现结果很有规律,先第一个对象执行,然后第二个对象执行,并没有相互运行。在JDK的文档中可以发现,一旦调用start方法,则会通过JVM找到run方法。下面启动sta...

SundyIT
2016/04/21
124
0
有4个线程A、B、C、D,分别打印1、2、3、4,请同时启动他们,但是要求按照1234的顺序输出结果

1、 有4个线程A、B、C、D,分别打印1、2、3、4,请同时启动他们,但是要求按照1234的顺序输出结果。 public class TestABCThread3 { private Object lock = new Object(); private int coun...

不爱吃鱼的喵
2015/10/29
248
0

没有更多内容

加载失败,请刷新页面

加载更多

排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
今天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
今天
9
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
今天
6
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
今天
8
0
Flutter 系列之Dart语言概述

Dart语言与其他语言究竟有什么不同呢?在已有的编程语言经验的基础上,我们该如何快速上手呢?本篇文章从编程语言中最重要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧 一、...

過愙
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部