继承Thread类创建线程
/**
* @author wenhui
* @description 继承Thread类创建线程
* @Date 2019/10/6
*/
public class CreateThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
/**
* @author wenhui
* @description
* @Date 2019/10/13
*/
public class Test {
public static void main(String[] args) {
System.out.println("---线程开始---");
CreateThread createThread = new CreateThread();
System.out.println("---线程启动---");
createThread.start();
System.out.println("---线程结束---");
}
}
运行结果:
实现Runnable接口创建线程
/**
* @author wenhui
* @description 实现CreateRunnable接口创建线程
* @Date 2019/10/13
*/
public class CreateRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
/**
* @author wenhui
* @description
* @Date 2019/10/13
*/
public class Test {
public static void main(String[] args) {
System.out.println("---线程开始---");
CreateRunnable createRunnable = new CreateRunnable();
System.out.println("---线程启动---");
Thread thread = new Thread(createRunnable);
thread.start();
System.out.println("---线程结束---");
}
}
运行结果:
用Callable的方式创建线程
public class ThreadTest3 {
public static void main(String[] args) {
Callable c = new Callable() {
@Override
public Object call() throws Exception {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()+" "+i);
}
return null;
}
};
ExecutorService es = Executors.newFixedThreadPool(2);
es.submit(c);
es.submit(c);
es.shutdown();
}
}