您好我有客户端服务器架构。
1.服务器脚本:
- 并且听插座
- 在接收客户端响应时,分叉一个新线程来处理客户端数据
- 每个线程必须接受客户端发送的数据并存储到数据库
2.客户脚本:
- 以每0.02秒的计时器运行,并通过插座发送数据到服务器
现在当我运行这两个脚本时,数据库会经常被锁定。
请让我知道我应该如何处理这件事。
如果您需要查看脚本,请告诉我。
答案 0 :(得分:2)
您的问题标签表明您使用的是SQLite。 SQLite数据库并非真正设计用于同一数据库上的并发操作,其锁定为per-database-file。这意味着您的线程并不是并行运行,而是等待整个数据库的独占锁定,这有效地将它们序列化。
如果需要并发写入,则应切换到客户端 - 服务器数据库,该数据库提供更精细的写入锁定,例如PostgreSQL。