gpt4 book ai didi

multithreading - 单独线程中的无限循环

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

我有一些数据库优化例程需要定期执行。我目前正在使用 TTimer,但主 VCL 卡住并且非常 hacky ...我想知道最好的方法是什么,以降低 cpu 消耗并执行这些例程。我认为将例程放在具有低线程优先级的单独线程中是最好的方法。

有什么想法吗?

最佳答案

如果可能的话,最好只对所有线程进行编码以完成在特定时间需要完成的最重要的事情。弄乱线程优先级可能会导致 serious performance problems如果你不知道自己在做什么。相反,只需像这样编写线程:

  1. 有什么重要的事情要做吗?如果是的话就这样做。

  2. 有什么不太重要的事情要做吗?如果是这样,那就做一点吧。

  3. 转到步骤 1。

假设您确实使用线程优先级。想象一下:

  1. 低优先级任务 A 获取数据库的锁。

  2. 普通优先级任务 B 需要大量 CPU 时间,它会从低优先级任务中窃取 CPU。

  3. 普通优先级任务 C 需要访问数据库。但它无法运行,因为低优先级任务持有数据库锁,并且任务 B 比任务 A 获得了 CPU 权。

  4. 现在,任务 C 必须等到任务 B 完成才能访问数据库。但它应该与任务 B 进行时间切片。

关于multithreading - 单独线程中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9715378/

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