一.Thread类和Runnable接口

1.在java.lang包中定义了Runnable接口和Thread类。

Runnable接口中只定义了一个方法,它的格式为:

public abstract void run()

2.这个方法要由实现了Runnable接口的类实现。Runnable对象称为可运行对象,一个线程的运行就是执行该对象的run()方法。

3.Thread类实现了Runnable接口,因此Thread对象也是可运行对象。同时Thread类也是线程类。

4.target为线程运行的目标对象,即线程调用start()方法启动后运行那个对象的run()方法,该对象的类型为Runnable,若没有指定目标对象,则以当前类对象为目标对象;name为线程名,group指定线程属于哪个线程组。

二.线程的创建

线程运行的代码就是实现了Runnable接口的类的run()方法或者是Thread类的子类的run()方法,因此构造线程体就有两种方法:

继承Thread类并覆盖它的run()方法;

实现Runnable接口并实现它的run()方法。

继承Thread类创建线程

通过继承Thread类,并覆盖run()方法,这时就可以用该类的实例作为线程的目标对象。下面的程序定义了SimpleThread类,它继承了Thread类并覆盖了run()方法。

实现Runnable接口创建线程

可以定义一个类实现Runnable接口,然后将该类对象作为线程的目标对象。实现Runnable接口就是实现run()方法。

三.线程的生命周期

线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。

新建:创建一个线程

就绪:等待启动

运行:运行输出

阻塞:从运行返回阻塞状态

死亡:程序结束

最新文章

  1. java笔记--理解java类加载器以及ClassLoader类
  2. elasticsearch__5__java操作之FilterBuilders构建过滤器Query
  3. maven引入的jar带了时间戳
  4. Snipaste
  5. 【基本技能篇】>>第2篇《如何把事情做到最好——心得》
  6. Android AsyncTask 简单用法
  7. MVC3异常处理的方法
  8. lecture5-对象识别与卷积神经网络
  9. Go
  10. Linux 命令整理 —— 用户管理
  11. Bad configuration option localCommand
  12. javascript笔记——jikeytang javascript前端群 389875212 精华总结
  13. javaScript 删除数组中指定元素
  14. Spring中的DataBinding(一)
  15. 洛谷-乘积最大-NOIP2000提高组复赛
  16. HDU 3691 Nubulsa Expo
  17. CSS3媒体查询(Media Queries)介绍
  18. Python 装饰器(Decorator)
  19. 全网Star最多(近20k)的Spring Boot开源教程 2019 年要继续更新了!
  20. JQERY EasyUI Tabs 选项卡 自适应浏览器宽度高度 解决方案

热门文章

  1. Python【流程控制与循环】
  2. 使用 dlv 调试go 程序
  3. jquery call cross-domain webapi owin self-host
  4. jQuery实现ie浏览器兼容placeholder效果
  5. 将整个文件读入string中
  6. Linux环境下动态链接库的生成和使用
  7. string.Format("rspauth={0}",
  8. TX 下常用的查询指令
  9. 搭建maven环境——nexus
  10. php7 中?? 和 ?:的区别