Java 之 執行緒池
阿新 • • 發佈:2019-01-10
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(); } } } }