多线程模式增加参数

功能建议 · 1176 次浏览
MarsJack 创建于 2024-04-26 23:31

多线程模式能否增加一个参数,在其中一个线程运行完后,就结束其他线程。

看到waitAny模式,这个是在其中一个线程结束后,其他线程还会不阻塞继续运行。

 

需求场景是:其中一个线程执行完后,就完成相应的判断,其他线程不需要再运行


回复内容
CL 2024-04-27 07:42
#1

具体使用场景是什么?

目前可以考虑增加一个变量作为是否停止各个子线程的标记,在线程步骤里判断这个变量,如果为true,就结束循环。

MarsJack 回复 CL 2024-04-27 11:07 :

例如屏幕识图页面元素判断,找到其中一个元素,就可以停止线程并且退出。

例如页面中查找已登陆,未登陆两个字体,并发两个线程查找,其中一个线程找到就退出,其他线程不需要继续查找,避免浪费资源

MarsJack 最后更新于 2024-04-27 11:10
CL 回复 MarsJack 2024-04-27 11:14 :

尽量避免使用多线程了,循环判断即可。 这类都是CPU敏感的才处理,多线程并不能减少时间,多线程只适合在网络请求这种IO敏感的情形下使用。

臭冬瓜 回复 CL 2024-04-27 21:22 :

有道理,建议写入多线程的教程中

MarsJack 回复 CL 2024-04-27 22:37 :

使用并发多线程查找确实比逐个屏幕识图快了。多次测试过。



例如查找已登录,未登录。用多线程只需要50毫秒完成。

不使用多线程需要300毫秒左右完成。相差的时间较大

zryan 回复 MarsJack 2024-04-27 23:26 :

停止也得等当前步骤运行完之后才能停止。对于找图模块来说,还是得先运行完才能停,并不能带来资源节省。

MarsJack 回复 zryan 2024-04-27 23:29 :

发现找不到相应页面元素所需要的时间大概是300毫秒,但是找到相应页面元素的时间是50毫秒。找不到时候耗费时间较长。

回复主贴