0

我想在我的程序(linux C)中构建一个 sqlite 表:

它有 3 列/字段:

1 个 ip/端口对,2 个 FIFO 队列指针,3 个进程 ID 或线程 ID

我现在对 sqlite 不熟悉,如果我创建一个 sqlite 表,是否可以:

当将一行插入到 sqlite 表中时,将启动一次性超时计时器,如果没有预期的事件(当创建一行时,第三个字段为空,它会等待进程或线程填充第三个字段。)发生在超时内,该行被删除。超时定时器是一次性的,所以只在行插入表后使用一次。

如果是这样,是否有任何类似的源代码?谢谢!</p>

4

1 回答 1

0

数据库用于持久存储。使用程序内存作为临时存储,而不是从数据库中添加然后删除。您可以分四个步骤来打破您的流程:

  1. 从主线程将要完成的对象放入队列中。
  2. 触发或通知应该填充缺失字段的线程。工作线程会从队列中读取和修改对象,也会在 1s 后终止。
  3. 在主线程中,等待 1s(或等待工作线程完成)。
  4. 从主线程检查队列中的对象:如果工作线程设法填充缺失的字段,则将队列中的对象提交到数据库。否则,将它们从队列中丢弃。

当然,您将需要一个线程安全队列。请参阅此 Stackoverflow 答案

于 2013-05-12T10:47:03.740 回答