package com.yssh.service.impl; import java.util.List; import java.util.concurrent.CountDownLatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import com.yssh.dao.BaseMapper; import com.yssh.service.IAsyncService; @Service public class AsyncServiceImpl implements IAsyncService { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); @Override public void executeAsync(String tableName, List lists, BaseMapper mapper, CountDownLatch countDownLatch) { try{ //异步线程要做的事情 mapper.batchInsert(tableName, lists); }finally { countDownLatch.countDown();// 很关键, 无论上面程序是否异常必须执行countDown,否则await无法释放 } } }