简单贴一下多线程创建的三种基本方式吧,照顾下初学者,会的饶边!
没什么好多说的 手动敲一遍 运行一遍即可
推荐第一 第二种 一般第三种不推荐
一、继承Thread类
public class WelcomeApp {
public static void main(String[] args) {
//启动线程
Thread welcomeThread = new WelcomeThread();
// 启动线程
welcomeThread.start();
// 输出“当前线程”的线程名称
System.out.printf("1.Welcome! I'm %s.%n", Thread.currentThread().getName());
}
}
class WelcomeThread extends Thread {
// 在该方法中实现线程的任务处理逻辑
@Override
public void run() {
System.out.printf("2.Welcome! I'm %s.%n", Thread.currentThread().getName());
}
}
WelcomeThread类继承了Thread类,只要相应的类继承Thread,然后调用start()方法即可
二、 实现Runnale接口
public class WelcomeApp1 {
public static void main(String[] args) {
// 创建线程
Thread welcomeThread = new Thread(new WelcomeTask());
// 启动线程
welcomeThread.start();
// 输出“当前线程”的线程名称
System.out.printf("1.Welcome! I'm %s.%n", Thread.currentThread().getName());
}
}
class WelcomeTask implements Runnable {
// 在该方法中实现线程的任务处理逻辑
@Override
public void run() {
// 输出“当前线程”的线程名称
System.out.printf("2.Welcome! I'm %s.%n", Thread.currentThread().getName());
}
}
三、直接new Thead然后再Runnble里面实现逻辑
public class WelcomeApp2 {
public static void main(String[] args) {
// 创建线程
Thread welcomeThread = new Thread(new Runnable() {
@Override
public void run() {
System.out.printf("2.Welcome! I'm %s.%n", Thread.currentThread()
.getName());
}
});
// 启动线程
welcomeThread.start();
// 这里直接调用线程的run方法,仅是出于演示的目的
welcomeThread.run();
System.out.printf("1.Welcome! I'm %s.%n", Thread.currentThread().getName());
}
}