一. 新建线程(两种方法)
第一种:继承Thread
1.定义一个类继承Thread
2.该类重写run方法。其中的getName是获取线程名方法;有参构造可以在新建时指定线程名
3.创建子类对象就是创建新线程
4.子类对象调用start方法 ,开启线程,执行重写的run方法。在main方法中获取线程名用Thread.CurrentThread().getName()
第二种:实现Runnable接口
1.定义类实现Runnable接口
2.覆盖接口中的run方法
3.创建Runnable接口实现类对象
4.创建Thread对象,将Runnable的子类对象作为参数传递给Thread类的构造函数
5.调用Thread类的start方法,开启线程,调用run方法
注意:
1.线程对象调用run方法不开启线程。仅是对象调用方法。线程对象调用start开启线程,并让jvm调用run方法在开启的线程中执行。
2.主线程名字main,自定义的线程默认以Thread-0、Thread-1...依次命名
二. 线程的匿名内部类的使用(两种方式)