public static void main(String[] args) {
List<String> dataList2 = new ArrayList<>(10);
LinkedBlockingQueue<String> blockingQueue = new LinkedBlockingQueue(10 * 50);
Thread thread = new Thread(() -> {
while (true) {
Queues.drainUninterruptibly(blockingQueue, dataList2, 10, 1, TimeUnit.SECONDS);
if (CollectionUtils.isNotEmpty(dataList2)) {
//TODO::: 业务代码
System.out.println(new Date() + "," + dataList2.size() + "," + JsonUtils.convertToString(dataList2));
dataList2.clear();
}
}
});
thread.start();
Thread thread1 = new Thread(() -> {
int i = 0;
while (true) {
try {
blockingQueue.put(i++ + "");
Thread.sleep(300L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread1.start();
}