Thread类与Runnable接口的深入理解
1、Thread类实现了Runnable接口,实现run方法,其中target参数对应的就是一个Runnable接口的实现类
@Override
public void run() {
if (target != null) {
target.run();
}
}
2、Thread.start方法是启动一个线程的必要方法,而且同一线程多次start则会报java.lang.IllegalThreadStateException异常
3、继承Thread类,重写run方法,那么在调用start方法时,线程执行的则是子类的run方法,并且每次创建的线程实例,即new 继承子类("ThreadName"),执行的run方法都是独立的,简单理解成每个人都只做自己的任务,而实现Runnable接口的类,通过new Thread(实现类,"ThreadName")构造器创建出的线程实例,执行的run方法是同一个,简单理解成多个人做同一个任务
参考链接:https://blog.****.net/xdd19910505/article/details/50732328
相关文章
- [C++]深入理解C++中的泛型编程、函数模板与类模板
- 深入理解Java对象的创建过程:类的初始化与实例化
- 深入理解linux网络技术内幕读书笔记(三)--用户空间与内核的接口
- Java基础-多线程编程-1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
- 实验六 多线程编程 1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
- Thread类与Runnable接口的深入理解
- 多线程-----Thread类与Runnable接口的区别
- 《深入理解Java虚拟机》-----第9章 类加载及执行子系统的案例与实战
- 深入理解C# 静态类与非静态类、静态成员的区别
- 创建子线程的两种方式:类实现runnable接口或是类继承Thread类