小编Car*_*elo的帖子

SplittableRandom有什么意义?

Java 8添加了一个称为的随机数生成器SplittableRandom,该生成器似乎旨在用于流。但是,尚不清楚它比更好或更有用ThreadLocalRandom。通过阅读文档,似乎算法已更改为具有更好的统计属性。也就是说,为什么不调用它BetterThreadLocalRandom并删除split方法呢?为什么会有人打电话split()

java concurrency

6
推荐指数
1
解决办法
1473
查看次数

如何防止Postgres中的幻像读取?

有可能阻止Phantom读取,或以其他方式锁定Postgres事务中丢失的行吗?例如,请考虑以下命令序列:

在连接1上:

CREATE TABLE weather ( city varchar(80) PRIMARY KEY );
BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO weather VALUES ('a');
Run Code Online (Sandbox Code Playgroud)

同时,在连接2上:

BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SELECT * FROM weather WHERE city = 'a' FOR SHARE;
INSERT INTO weather VALUES ('b');
Run Code Online (Sandbox Code Playgroud)

并回到连接1:

COMMIT;
Run Code Online (Sandbox Code Playgroud)

再次回到连接2:

COMMIT;
SELECT * FROM weather;
-- Shows both rows
Run Code Online (Sandbox Code Playgroud)

连接2上的事务似乎不可能成功,因为创建行'b'的前提条件取决于行'a'的缺失.如何防止第二个事务成功?

postgresql transactions

5
推荐指数
1
解决办法
654
查看次数

标签 统计

concurrency ×1

java ×1

postgresql ×1

transactions ×1