单线程
Java中代码执行顺序自上而下,如果某个方法执行时间过长,可以放在线程当中单独处理,剩下代码继续执行。与异步的概念类似
继承Thread类创建线程类
public class LogInfo extends Thread{
@Override
public void run(){
for(int i=0; i<5; i++){
System.out.println(i);
}
}
public static void main(String[] args) {
Thread thread = new LogInfo();
thread.start();
System.out.println("---线程已启动---");
}
}
输出日志:
线程单独执行,不受mian方法影响
实现Runnable接口创建线程
public class LogInfo2 implements Runnable{
@Override
public void run() {
try {
//等待一秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1.通过实现Runnable接口创建线程");
}
public static void main(String[] args) {
LogInfo2 logInfo2 = new LogInfo2();
new Thread(logInfo2).start();
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("2.Runnable接口的另一种实现方式");
}
}).start();
System.out.println("---线程创建完毕---");
}
}
输出日志:
run方法和start方法的区别
start:
run:
总结:
run方法只是执行了线程里的run方法并没有启动线程,start方法是启动线程,线程独立执行run方法
终止线程的方法
- 使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。
- 使用 stop() 方法强行终止线程,不推荐使用这个方法,该方法已被弃用。
- 使用 interrupt 方法中断线程。