gpt4 book ai didi

multithreading - 实现即时线程搜索算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:16 29 4
gpt4 key购买 nike

所以我想知道实现即时搜索负载密集型的一般算法是什么。不是专门在网络上,而是在桌面/winforms 应用程序中。

如果我错了请纠正我,但不能在每次击键时发送异步调用,对吧? (不确定 how google instant manages this)它会在数据库/存储等上造成疯狂的负载。

我一直在想这样的事情:

  1. 每 xxx 毫秒触发一次计时器
  2. 着火,禁用输入,禁用计时器,并发送异步调用以进行搜索。
  3. 当调用返回时,显示结果,启用输入,启用定时器

这是它通常的处理方式,还是有更好的方法?

最佳答案

搜索查询通常很小,因此服务器上增加的负载可能没有您想象的那么大。只要您对查询的长度保持限制,就可以在每次击键时发送查询。

反正是服务器知道自己的负载有多大,所以负载管理的地方就在服务器端。例如,您可以遵循如下策略:

在客户端:

  • 当搜索文本发生变化时,将其发送到服务器。
  • 当服务器发送一些结果时,更新页面。

在服务器上,当收到来自客户端的查询时:

  • 如果我已经在处理来自该客户的查询,请取消旧查询。
  • 如果我有来自该客户的排队查询,请丢弃它。
  • 将新查询添加到待处理搜索查询队列中,除非队列已满。

关于multithreading - 实现即时线程搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4278069/

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