/*
* 进程: 正在执行的程序, 每一个进程都会有一个执行的顺序, 称为执行单元
* 线程: 就是进程中的一个独立的单元。
*
*
* 创建线程的两种方式:
* 1.继承Thread, 并重写run()方法
* 掉用start()方法, 开启线程
*
* 2.实现Runnable接口, 并重写run()方法
* 创建实现类的对象, new Thread(实现类的对象).start() 开启线程
*
*
* 实现方式和继承方式的区别:
* 避免了JAVA单继承的局限性, 在定义线程的时候尽量使用实现的方式
* 实现Runnable接口: 代码存放在实现接口的类的run()方法中
* 继承Tread类: 代码存放在Tread类的子类的run()方法中
*
* Thread类用于描述线程。
* 该类定义了一个功能, 用于存储线程要执行的代码。该存储功能就是run()方法。
* 也就是说run()方法存储了线程要运行的代码。
*
*
*
*
*
*
*/
class Demo extends Thread{
@Override
public void run() {
System.out.println("run thread");
//返回正在执行的线程对象
Thread thread = Thread.currentThread();
super.run();
}
}
class Demo2 implements Runnable{
private int t = 100;
@Override
public void run() {
while (true) {
if(t<=0) return;
System.out.println(Thread.currentThread().getName() + " -> " + t--);
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
Demo d = new Demo();
d.start(); //开启线程并执行run()方法
//d.run(); 仅仅是对象调用方法
Demo2 d2 = new Demo2();
new Thread(d2).start();
}
} |