比如本章节,旨在为新人学习多线程的应用...
先回顾下,我们正式章节的业务需求:
我们需要写一个并发功能,把收到的多个需求优化设置,同时且批量的发送给AI接口。但是要把最终的内容记录到一起。
首先,我们做一个Ai发送接口的函数,不会去真的请求,而是假装请求,结果是一个列表,就是假装Content的拆解字符成的列表。
首先以等价类为例:

输出如下:

假装这个列表res,就是我们请求AI后得到的结果。
现在,我们要弄第二个用例设计方案:边界值

结果如下:

我们再给他们加上随机时间消耗,和记录。

如图,输出结果为:

从时间上可以看到,此时俩次调用时顺序执行。于是,我们接下来要把这俩次调用,用多线程的方式同时输出,那就需要有一个控制的函数:begin

如图所示,我们几乎是同时启动了俩次调用。每次调用随机消耗时间,我这个一个3秒,一个5秒。结果如下:

到这里,我们的多线程似乎成功了。那接下来的问题就是,如何把结果送到一个列表中了。
那么此刻就需要用class来帮忙了:

上图中,最终结果都汇总到了类变量self.end_res中了。
结果如下:

可以看到,俩次调用是同时开始的,并且在各自结束后,主线程打印了end_res变量,里面成功拿到了俩次的汇总(俩个拆解后的列表假装是aI的返回)。
但是.... 还没有结束....
最终结果中我们并不知道 俩个列表,谁是等价类,谁是边界值的。所以我们还需要再次修改一下res:

最终结果变成了这样:

然后我们似乎还漏掉了一个设计,就是之前我们Content并不是直接拿来用的,而是进行了一个统一的提示词后缀
所以再修改如下:

提示词等我们正式使用了再写吧~
结果如下:

如上图可见,这个算法算是通了。
本节到此结束,欢迎追更哦~