Java 之 线程池

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolDem01 {
	public static void main(String[] args) {
		ExecutorService pool=Executors.newFixedThreadPool(2);
		
		Run r1=new Run("A");
		Run r2=new Run("B");
		Run r3=new Run("C");
		Run r4=new Run("D");
		Run r5=new Run("E");
		/*
		 * 每次只执行两次
		 * 会按照添加的顺序执行
		 * 要注意的r5执行完之后不会停止,因为可能会有其他的线程在执行
		 * 所以线程池比较耗能
		 */
		pool.execute(r1);
		pool.execute(r2);
		pool.execute(r3);
		pool.execute(r4);
		pool.execute(r5);
                pool.shutdown();
	}
}

class Run implements Runnable{
	private String name;
	public Run(String name) {
		this.name=name;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i=1;i<=10;i++) {
			System.out.println(name+":"+i);
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_36590808/article/details/82931869