时间:2025-06-04 作者:游乐小编
本教程涉及较多的难点,为了照顾新手粉丝的理解体验,我们会穿插实测章节。通过简单的demo来学习后续复杂的算法,并起到类似mock的作用,忽略复杂的外部环境,加快调试速度。
比如本章节,旨在为新人介绍多线程的应用...
回顾一下,我们正式章节的业务需求:
我们需要编写一个并发功能,将多个接收到的需求进行优化设置,并批量发送给AI接口,同时将最终的内容记录在一起。
首先,我们创建一个AI发送接口的函数,不会进行实际请求,而是模拟请求,结果是一个列表,假装是Content拆解后的字符列表。
首先以等价类为例:
输出如下:
假装这个列表res,就是我们请求AI后得到的结果。
接下来,我们设计第二个用例方案:边界值
结果如下:
我们再加上随机时间消耗和记录。
如图,输出结果为:
从时间上可以看出,此时两次调用是顺序执行的。于是,我们接下来要将这两次调用以多线程的方式同时输出,这就需要一个控制函数:begin
如图所示,我们几乎是同时启动了两次调用。每次调用随机消耗时间,我这里一个3秒,一个5秒。结果如下:
到这里,我们的多线程似乎成功了。接下来要解决的问题是,如何将结果汇总到一个列表中。
这时就需要使用类来帮助我们:
上图中,最终结果都汇总到了类变量self.end_res中。
结果如下:
可以看到,两次调用是同时开始的,并且在各自结束后,主线程打印了end_res变量,里面成功获取了两次的汇总(两个拆解后的列表假装是AI的返回)。
但是...还没有结束...
在最终结果中我们并不知道两个列表中,哪个是等价类,哪个是边界值的。所以我们还需要再次修改一下res:
最终结果变成了这样:
然后我们似乎还漏掉了一个设计,就是之前我们Content并不是直接拿来用的,而是进行了一个统一的提示词后缀。
所以再修改如下:
提示词等我们正式使用时再写吧~
结果如下:
如上图可见,这个算法算是通过了。
本节到此结束,欢迎继续关注哦~
2022-09-17 13:04
手游攻略2022-05-08 21:12
手游攻略2022-07-30 08:06
八卦新闻2021-12-12 12:51
单机攻略2021-12-16 01:00
单机攻略