gpt4 book ai didi

multithreading - 如何避免异步等待

转载 作者:行者123 更新时间:2023-12-03 12:52:45 25 4
gpt4 key购买 nike

我有一个需要查询数据库以获取/放入信息的应用程序。我无法同步执行此操作,因为它会阻塞我的整个过程,直到函数返回为止。

基本上,我有一些函数可以在某些点运行一个或多个查询。

fun
stuff1
stuff2
stuff3

query1
stuff4

query2
stuff5
  • 我可以在单独的线程中启动函数,但是然后我必须锁定所有内容以防止种族(我认为锁定可能很慢?)
  • 我可以异步启动查询并监视它们,但是然后我将不得不拆分函数并使用在qouery超过
  • 时将运行的回调

    我对通用解决方案感兴趣,但是我的平台是POSIX,数据库是(不幸的是)mysql。

    你会怎么做 ?您将如何处理?

    感谢您的时间。

    最佳答案

    有些模式已经知道并使用了很长时间,我相信它们并没有改变。

  • 运行独立功能:使用不同的线程
  • 运行独立的函数,然后运行依赖于所有函数的函数:使用不同的线程并在最后加入它们-同步它们。我不了解POSIX,但是在.NET中,我们有EventWaitHandle,可以等待多个线程,并在所有操作完成时通知。
  • 运行彼此依赖的函数:在单个后台线程上运行并链接回调。 .NET再次提供Task<T>链接,这使读写代码变得更加简单。 jQuery现在提供了promise,它是同一回事。
  • 关于multithreading - 如何避免异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8616333/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com