创建线程类两种方法:1、继承Thread类。2、实现Runnable接口。
线程池的创建方法是:Executors.newFixedThreadPool(线程池的容量)。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadTest {
public static void main(String[] args) {
/*继承Thread类的线程,new出来后直接用start调用即可开启*/
new MyThread1().start();
/*实现Runnable接口的线程,new出来后要放进Thread对象中,通过代理运行*/
new Thread(new MyThread2()).start();
/*线程池,可代理实现Runnable接口的线程。线程池的创建方法是:Executors.newFixedThreadPool(线程池的容量);*/
ExecutorService executorService = Executors.newFixedThreadPool(4);
for(int i=0;i<4;i++){
executorService.execute(new MyThread());
}
/*释放线程池资源*/
executorService.shutdown();
}
}
/*第一种实现线程的方法,继承Thread类*/
class MyThread1 extends Thread{
@Override
public void run() {
System.out.println("Thread1 is running.");
}
}
/*第二种实现线程的方法,实现Runnable接口*/
class MyThread2 implements Runnable{
@Override
public void run() {
System.out.println("Thread2 is running.");
}
}
class MyThread implements Runnable{
@Override
public void run() {
/*打印当前线程的名字*/
System.out.println(Thread.currentThread().getName());
}
}
上述代码运行结果: