天天看点

线程池之-newFixedThreadPool

newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

示例如下:

package com.executor.test;

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

/**
 * @author 作者:wx
 * @createDate 创建时间:Sep 17, 2019 11:13:39 AM
 */
public class FixedThreadPoolDemo {
	public static void main(String[] args) {
		ExecutorService executorService = Executors.newFixedThreadPool(3);
		for (int i = 0; i < 10; i++) {
			int temp = i;
			executorService.execute(new Runnable() {

				@Override
				public void run() {
					try {
						Thread.sleep(2000);
						System.out.println(Thread.currentThread().getName() + "," + temp);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			});
		}
	}

}
           

输出如下:

线程池之-newFixedThreadPool

总结:因为线程池大小为3,每个任务输出index后sleep 2秒,所以每两秒打印3个数字。

继续阅读