场景:第三方api调用时,避免第三方服务因并发调用数过高挂掉
下面测试例子
1 private static final RateLimiter rateLimiter =RateLimiter.create(3.0); 2 3 public static void main(String[] args) { 4 5 for (int i =0; i <30; i++) { 6 7 new Thread(() -> { 8 9 // System.out.println(currentThread().getName() + "我开始执行了"); 10 11 System.out.println(send(currentThread().getName())); 12 13 }).start(); 14 15 } 16 17 } 18 19 public static String send(String message) { 20 21 rateLimiter.acquire(); 22 23 return sendd(message); 24 25 } 26 27 public static String sendd(String message) { 28 29 return "发送消息:{" + message +"}成功!" +DateUtil.getNow(); 30 31 }