1

嗨,我有客户端服务器架构。
1.服务器脚本:
-运行并监听socket。
- 在接收到客户端响应时,分叉一个新线程来处理客户端数据
- 每个线程必须接受客户端发送的数据并存储到数据库
2. 客户端脚本:
- 以每 0.02 秒的计时器运行,并通过以下方式将数据发送到服务器插座

现在当我运行这两个脚本时,数据库经常被锁定。

请让我知道我应该如何处理。
如果您需要查看脚本,请告诉我。

4

1 回答 1

2

您的问题标签表明您正在使用 SQLite。SQLite 数据库并不是真正为在同一个数据库上的并发操作而设计的,它的锁是per-database-file。这意味着您的线程不是并行运行,而是等待整个数据库上的排他锁,从而有效地序列化它们。

如果您需要并发写入,您应该切换到提供更细粒度的写入锁定的客户端-服务器数据库,例如 PostgreSQL。

于 2013-07-20T07:11:31.343 回答