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.csdn.net/xdd19910505/article/details/50732328
相关文章
- Thread类与Runnable接口的深入理解
- 多线程-----Thread类与Runnable接口的区别
- 《深入理解Java虚拟机》-----第9章 类加载及执行子系统的案例与实战
- 深入理解C# 静态类与非静态类、静态成员的区别
- 创建子线程的两种方式:类实现runnable接口或是类继承Thread类
- java创建多线程的两种方法(继承Thread类/实现Runnable接口)
- 转:深入理解Java的接口和抽象类
- 继承Thread类与实现Runnable接口
- java 多线程:Callable接口;FutureTask类实现对象【Thread、Runnable、Callable三种方式实现多线程的区别】
- 深入理解java虚拟机系列文章:类的加载、连接与初始化