diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java index d13a95b16..a25a910ef 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java @@ -74,6 +74,9 @@ public class WxMpServiceHttpClientImpl extends BaseWxMpServiceImpl set = Sets.newConcurrentHashSet(); + Runnable r = new Runnable() { + @Override + public void run() { + try { + String accessToken = wxService.getAccessToken(); + set.add(accessToken); + } catch (WxErrorException e) { + e.printStackTrace(); + } + } + }; + + final int threadNumber = 10; + ExecutorService executorService = Executors.newFixedThreadPool(threadNumber); + for ( int i = 0; i < threadNumber; i++ ) { + executorService.submit(r); + } + executorService.shutdown(); + boolean isTerminated = executorService.awaitTermination(15, TimeUnit.SECONDS); + System.out.println("isTerminated: " + isTerminated); + System.out.println("times of refreshing accessToken: " + set.size()); + + assertEquals(set.size(), 1); + + } }