【问题标题】:How to get a Mysql INSERT to signal pthread mutex如何让 Mysql INSERT 向 pthread 互斥体发出信号
【发布时间】:2011-10-11 14:48:50
【问题描述】:

我有一个在 Linux 上运行的 C 代码应用程序,它有一个在 Mutex 上阻塞的 pthread。 每当在 MySQL 数据库中进行 INSERT 语句时,我希望解除阻塞该线程。然后线程将去从数据库中读取一些数据。

那么我如何让数据库向互斥锁发出信号?

谢谢

【问题讨论】:

  • 你能从 INSERT 触发器执行一个进程吗?
  • 好吧,如果安全的话,只是想知道你的建议有什么更好的,或者只是写进一个表格行并每秒轮询一次
  • 轮询可能是最好的解决方案。

标签: mysql linux unix pthreads


【解决方案1】:

您对细节含糊不清,但假设一个(或多个)线程正在执行插入操作,并且需要通知一个(或多个)线程,您可能想要使用条件变量。基本上读线程调用pthread_cond_wait并阻塞,直到插入线程成功写入数据库,然后调用pthread_cond_signal唤醒阻塞的读线程。

如果其他程序或机制正在执行插入,则此答案不适用。

【讨论】:

    【解决方案2】:

    您可以为该 INSERT 创建一个触发器,这将使您有机会运行 UDF(用户定义函数)。函数可以运行外部代码,可以使用pthread_cond_signal唤醒你的程序。我认为不建议写这样的东西,但这是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多