import java.util.concurrent.*;
/*
* 线程练习3
* 使用各种不同的类型的执行器重复练习1
*/
class Printer implements Runnable{
@Override
public void run() {
System.out.println("this is the excise of 3");
}
}
public class singlethreadexecutor {
public static void main(String[] args) { //CachedThreadPool为每一个任务都创建一个线程
ExecutorService exec = Executors.newCachedThreadPool(); //Executor为你管理对象
for(int i = 0; i < 3; i++) //ExecutorService(具有服务生命周期的Executors)知道如何让构建上下文来执行Runnable对象Printer
exec.execute(new Printer()); //调用ExecutorService中的执行方法execute()实现 打印
Thread.yield(); //切换任务
exec.shutdown(); //调用ExecutorService中的关闭方法
exec = Executors.newFixedThreadPool(5);//FixedThreadPool可以一次性预先执行代价高昂的线程分配
for(int i = 0; i < 4; i++){
exec.execute(new Printer());
Thread.yield();
exec.shutdown();
}
exec = Executors.newSingleThreadExecutor();//线程数量为1的FixedThreadPool
for(int i = 0; i < 5; i++){ //在一个线程中连续运行任何东东
exec.execute(new Printer());
Thread.yield();
exec.shutdown();
}
}
}
/*
* 线程练习3
* 使用各种不同的类型的执行器重复练习1
*/
class Printer implements Runnable{
@Override
public void run() {
System.out.println("this is the excise of 3");
}
}
public class singlethreadexecutor {
public static void main(String[] args) { //CachedThreadPool为每一个任务都创建一个线程
ExecutorService exec = Executors.newCachedThreadPool(); //Executor为你管理对象
for(int i = 0; i < 3; i++) //ExecutorService(具有服务生命周期的Executors)知道如何让构建上下文来执行Runnable对象Printer
exec.execute(new Printer()); //调用ExecutorService中的执行方法execute()实现 打印
Thread.yield(); //切换任务
exec.shutdown(); //调用ExecutorService中的关闭方法
exec = Executors.newFixedThreadPool(5);//FixedThreadPool可以一次性预先执行代价高昂的线程分配
for(int i = 0; i < 4; i++){
exec.execute(new Printer());
Thread.yield();
exec.shutdown();
}
exec = Executors.newSingleThreadExecutor();//线程数量为1的FixedThreadPool
for(int i = 0; i < 5; i++){ //在一个线程中连续运行任何东东
exec.execute(new Printer());
Thread.yield();
exec.shutdown();
}
}
}