1.8k words 2 mins.

最近开发一个新的需求,虽然磕磕碰碰需求写完了,但是问题也随之而来:可能查询的数据会有上千万之多,所以可能会用到分批去查询处理,所以也就聚集了一些办法:

15 words 1 mins.

LeetCode 刷题顺序 DDD
16k words 15 mins.

# 建议收藏,减少百度重复造轮子

我们应该都知道 SimpleDateFormat 是线程不安全的,在多线程的环境下会出现日期错乱的问题。

假设我们有一些字符串日期,需要格式化成日期,然后编写下面的程序,同时多个线程请求,观察结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class SimpleDateFormatTest {
/**
* 需要格式化的字符串
*/
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

public static void main(String[] args) {
final CountDownLatch latch = new CountDownLatch(1);
List<String> date = Arrays.asList("2021-01-01 12:12:12", "2021-01-02 11:11:11", "2021-01-11 09:09:09");
IntStream.range(1, 10).forEach(v -> {
new Thread(() -> {
try {
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
IntStream.range(0, 10).forEach(i -> {
try {
System.out.println(DATE_FORMAT.parse(date.get(i % date.size())));
Thread.sleep(100);
} catch (InterruptedException | ParseException e) {
e.printStackTrace();
}
});
}).start();
});
latch.countDown();
}
}