-
创建线程池对象,包含2个线程。从线程池中获取线程对象,然后调用MyRunnable中的run();
-
MyRunnable类实现了Runnable接口,首先在控制台打印需求,“我需要一个老师”。模拟需要2秒钟时间老师可以过来指导学生,并在控制台打印老师的姓名。最后,在控制台打印“教我java,教完后,老师回到了办公室”;
MyRunable类:
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("我要一个老师");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("老师来了"+Thread.currentThread().getName());
System.out.println("教我java,教完后,老师回到了办公室");
}
}
测试类ThreadPoolTest
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolTest {
public static void main(String[] args) {
// 创建一个包含两个线程对象的线程池
ExecutorService service = Executors.newFixedThreadPool(2);
// 实例化一个Runable对象
MyRunnable r = new MyRunnable();
// 从线程池中获取线程对象,然后调用MyRunnable中的run()
service.submit(r);
// 再获取线程对象,调用MyRunnable中的run()
service.submit(r);
service.submit(r);
// 关闭线程池
service.shutdown();
}
}