工具:java
ab -n [請求總數] -c [本次請求的併發數是50] [url] 例如:ab -1000 -c 50 http://www.baidu.com
一個圖形化的工具,功能很強大編程
T一、T二、T3每次執行都會將計數器減1,線程A在計數器減爲0的時候,纔會執行。併發
可以保證某一個線程在其餘線程執行完以後再執行的需求工具
同一時刻並行的線程數量性能
主要用來控制同時併發數測試
併發場景模擬網站
public class ConcurrencyTest { // 請求總數 public static int clientTotal = 5000; // 同時併發執行的線程數 public static int threadTotal = 200; public static int count = 0; public static void main(String[] args) throws Exception { ExecutorService executorService = Executors.newCachedThreadPool(); final Semaphore semaphore = new Semaphore(threadTotal); final CountDownLatch countDownLatch = new CountDownLatch(clientTotal); for (int i = 0; i < clientTotal ; i++) { executorService.execute(() -> { try { semaphore.acquire(); add(); semaphore.release(); } catch (Exception e) { log.error("exception", e); } countDownLatch.countDown(); }); } countDownLatch.await(); executorService.shutdown(); log.info("count:{}", count); } private static void add() { count++; } }