首页>代码>高并发下java实现数据负载均衡落地的实例>/concurrent-sdk/src/main/java/com/concurrent/sdk/read/DefaultConcurrentReader.java
package com.concurrent.sdk.read; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.LinkedBlockingQueue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.concurrent.sdk.common.ConfigVariable; import com.concurrent.sdk.transfer.AbstractConcurrentWriteTransfer; import com.concurrent.sdk.transfer.ConcurrentWriteTransfer; /** * @ClassName: DefaultConcurrentReader * @Description: 默认读入数据的类 * @date: 2016年7月1日 下午5:25:37 * * @author tanfan * @version @param <T> * @since JDK 1.7 */ public class DefaultConcurrentReader<T> implements IConcurrentReader<T> { private static final Logger logger = LoggerFactory.getLogger(DefaultConcurrentReader.class); private BlockingQueue<T> queue; private ExecutorService service; private static int writerSize = ConfigVariable.getWriterSize(); private AbstractConcurrentWriteTransfer<T>[] transfer; private Future<?>[] future; @SuppressWarnings("unchecked") public DefaultConcurrentReader(){ service = Executors.newFixedThreadPool(ConfigVariable.getWriteThreadSize()); logger.debug("service hashcode|{}",service.hashCode()); queue = new LinkedBlockingQueue<>(); transfer = new AbstractConcurrentWriteTransfer[writerSize]; future = new Future[writerSize]; for(int i=0;i<writerSize;i++){ transfer[i] = new ConcurrentWriteTransfer<T>(); transfer[i].setQueue(queue); transfer[i].setName("transfer"+i); future[i] = service.submit(transfer[i]); } } @Override public void read(T t) { queue.add(t); logger.debug("t|{},queue hashCode|{}, queue size|{}",t,queue.hashCode(),queue.size()); } @Override public void stop() { for(int i=0;i<writerSize;i++){ transfer[i].flush(); transfer[i].stop(); future[i].cancel(true); } if(service!=null){ logger.debug("stop service hashcode|{}",service.hashCode()); service.shutdown(); } } }
最近下载更多
zwbshuai LV13
2020年12月18日
不打不相识 LV12
2020年8月26日
soplha LV10
2020年3月24日
13232875251 LV14
2019年4月19日
mkl123456 LV7
2019年2月25日
汤圆儿 LV3
2019年2月12日
wodearong LV2
2018年9月14日
zhos0212 LV19
2018年8月3日
ADOBE4D LV2
2018年7月17日
1292022734 LV4
2018年5月16日
最近浏览更多
黄小熙 LV7
11月12日
dapeng0011 LV15
2月25日
123暖壶别炸 LV7
2023年4月14日
林间听风 LV10
2023年3月16日
UzumakiHL
2023年2月22日
暂无贡献等级
mylzdy LV12
2022年3月22日
w769177475
2022年3月14日
暂无贡献等级
moneyla LV5
2022年3月11日
sunnshinee LV1
2021年11月27日
对方正在输入...
2021年9月23日
暂无贡献等级