package com.qimh.thread.concurrent;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
public class TestOne {
final static int MAX_QPS = 10;
final static Semaphore semaphore = new Semaphore(MAX_QPS);
public static void main(String[] args) throws InterruptedException {
//启动一个定时执行执行任务的线程池,线程池中线程的数量为1,启动一秒后开始执行,每隔0.5秒执行一次
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
public void run() {
semaphore.release(MAX_QPS / 2);//释放曾经被占用过的坑
}
}, 1000, 500, TimeUnit.MILLISECONDS);
//创建一个有一百个线程的线程池
ExecutorService pool = Executors.newFixedThreadPool(100);
//提交一百个线程,去执行任务