1

こんにちは、私はクライアント サーバー アーキテクチャを持っています。
1. サーバー スクリプト: -
実行し、ソケットをリッスンします。
-クライアントの応答を受信すると、クライアントデータを処理するために新しいスレッドがフォークされます
-各スレッドはクライアントから送信されたデータを受け入れ、データベースに保存する必要があります
2. クライアントスクリプト:
- 0.02 秒ごとのタイマーで実行され、サーバーにデータを送信しますソケット

両方のスクリプトを実行すると、データベースが頻繁にロックされます。

これをどのように処理すればよいか教えてください。
スクリプトが必要な場合は、お知らせください。

4

1 に答える 1

2

質問タグは、SQLite を使用していることを示しています。SQLite データベースは、実際には同じデータベースでの同時操作用に設計されているわけではなく、そのロックはデータベース ファイルごとに行われます。これは、スレッドが並行して実行されていないことを意味しますが、データベース全体の排他ロックを待っているため、効果的にシリアル化されます。

同時書き込みが必要な場合は、PostgreSQL など、よりきめ細かい書き込みロックを提供するクライアント サーバー データベースに切り替える必要があります。

于 2013-07-20T07:11:31.343 に答える