方案一中情况1(创建Thread(类)子类的对象)
步骤:
1、创建一个类让其继承于Thread
public class 类名 extends Thread{
}
2、重写run方法(run中代码就是该程序执行的代码)
public class 类名 extends Thread{
public void run(){
}
}
3、创建该类线程对象
Thread 对象名 = new Thread();
方案一中情况2 (使用匿名内部类创建Thread(类)子类的对象)
步骤:
1、使用匿名内部类创建Thread的子类对象,并重写run方法
匿名内部类的语法格式:
类名/接口名 对象名 = new 类名/接口名(){
要重写的方法
}
Thread thread = new Thread(){
public void run(){
}
}
方案二中情况1 (将线程任务(Runnable接口)与线程(Thread)分开)
步骤:
1、创建线程任务对象
1.1创建一个类实现Runnable接口
public class Myrunnable implements Runnable{
}
1.2重写run方法
public class Myrunnable implements Runnable{
public void run(){
}
}
1.3创建线程任务对象(main函数中)
Runnable runnable = new Runnable();
2、创建线程对象
2.1创建线程对象,创建的同时将线程任务对象传入线程对象的实参列表
public class Test{
public static void main(String[] args){
MyRunnable myRunnable = new MyRunnable();
}
}
方案二中情况2 (将线程任务(Runnable接口)与线程(Thread)分开 使用匿名内部类)
步骤:
1:创建线程任务对象,使用匿名内部类的形式创建
public class Test{
public static void main (String[ ] args){
Runnable runnable = new Runnable(){
public void run(){
}
};
}
}
2、创建线程对象,创建的同时将线程任务对象传入线程对象的实参列表
public class Test{
public static void main (String[ ] args){
Runnable runnable = new Runnable(){
public void run(){
}
};
Thread thread = new Thread(Runnable);
}
}
注意:Thread类与Runnable接口由JDK提供
启动
语法:
线程对象名.start();
注意:
一个线程只能启动一次
关闭
注意:
1、线程一旦启动,无法控制
2、线程执行完run方法中的代码后,将进入到等待销毁状态
名称
语法
设置线程名称
方式一:创建线程对象时设置
new Thread(线程名称);
new Thread(线程任务,线程名称);
方式二:使用线程对象名调用setName方法
线程对象名.setName(线程名称);
注意:在线程启动前设置线程名称
获取线程名称:
语法
string name = 线程对象名.getName();