我想在我的程序中构建一个sqlite表(linux C):
它有 3 列/字段:
1 IP/端口对,2 FIFO 队列指针,3 进程 ID 或线程 ID
我现在对sqlite不太熟悉,如果我创建一个sqlite表,是否可以:
当向sqlite表中插入一行时,一次性超时计时器启动,如果没有预期事件(创建一行时,第三个字段为空,则等待进程或线程填充第三个字段) .) 在超时时间内发生,该行将被删除。超时计时器是一次性的,因此仅在行插入表后使用一次。
如果有的话,有类似的源码吗?谢谢!
最佳答案
数据库用于持久存储。使用程序存储器作为临时存储器,而不是从数据库中添加然后删除。您可以通过四个步骤来中断流程:
- 将主线程中要完成的对象放入队列中。
- 触发或通知应填充缺失字段的线程。工作线程将从队列中读取和修改对象,并在 1s 后终止。
- 在主线程中,等待1s(或等待工作线程完成)。
- 从主线程检查队列内的对象:如果工作线程设法填充缺失的字段,则将队列中的对象提交到数据库。否则,将它们从队列中丢弃。
当然,您需要一个线程安全队列。引用this Stackoverflow answer .
关于c - 将一次性超时计时器与 sqlite 表中的一行关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506465/