小编Man*_*ath的帖子

如何在内存中的SQLite数据库上实现行级锁定?

在内存模式下使用我的程序运行SQLite v3.7.17 并使用共享缓存(在共享缓存和内存数据库中指定).我的程序是多线程的,所有这些线程都访问相同的内存数据库.

有没有什么方法可以配置或使用我的SQLite数据库,这样,当两个线程update在同一个表(但不同的行)上运行查询时,一个不等待另一个?也就是说,如何在内存数据库中实现行级锁定?

理论上这应该是可能的,因为我的SQLite数据不在文件中(因此文件系统写入适用).

database sqlite

6
推荐指数
2
解决办法
5712
查看次数

为什么Collection不扩展Cloneable和Serializable?

在Java库中,Collection接口不扩展CloneableSerializable接口的原因是什么?

java collections

5
推荐指数
2
解决办法
2万
查看次数

Go 中的数据竞争:为什么它发生在 10-11 毫秒以下?

这是我运行的代码:

package main

import (
    "fmt"
    "time"
)

const delay = 9 * time.Millisecond

func main() {
    n := 0
    go func() {
        time.Sleep(delay)
        n++
    }()
    fmt.Println(n)
}
Run Code Online (Sandbox Code Playgroud)

这是我使用的命令:

go run -race data_race_demo.go
Run Code Online (Sandbox Code Playgroud)

这是我注意到的行为:

  • delay设定为9ms或更低,种族数据一直检测(程序引发Found 1 data race(s)
  • delay设定为12毫秒以上,种族数据从未检测(程序简单的打印0
  • delay设置为10至11毫秒,数据争用间断地出现(即,有时打印0有时抛出Found 1 data race(s)

为什么会在 10-11ms 左右发生这种情况?

darwin/amd64如果这很重要,我正在使用 Go 1.16.3 。

go data-race

3
推荐指数
1
解决办法
80
查看次数

标签 统计

collections ×1

data-race ×1

database ×1

go ×1

java ×1

sqlite ×1