创建线程,了解run方法和start方法
包含创建线程的三种方式
public class Main{
public static void main(String[] args) {
//创建线程方式1
MyThread myThread = new MyThread();
myThread.start();
myThread.run();
//创建线程方式2
// new MyThread().start();
//创建线程方式3
// new Thread(new MyRunnable()).start();//线程通过start方法启动
}
}
class MyThread extends Thread {
@Override
public void run() {//run是线程运行时候的代码块
//代码
System.out.println(Thread.currentThread().getName());
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
· 注释start方法打印结果
run方法直接调用,不会启动线程,只是在当前的main线程中
· 注释run方法打印结果
守护线程
· 至少有一个非守护线程没有被销毁,进程才不会退出
· 非守护线程称为工作线程,守护线程称为后台线程
· 测试代码
public class DaemonThread {
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(9999999999L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
t.setDaemon(true);//设置为守护线程
t.start();
}
}
设置为守护线程后代码不会阻塞而会直接退出。
加油鸭~