多线程模式能否增加一个参数,在其中一个线程运行完后,就结束其他线程。
看到waitAny模式,这个是在其中一个线程结束后,其他线程还会不阻塞继续运行。
需求场景是:其中一个线程执行完后,就完成相应的判断,其他线程不需要再运行
具体使用场景是什么?
目前可以考虑增加一个变量作为是否停止各个子线程的标记,在线程步骤里判断这个变量,如果为true,就结束循环。
例如屏幕识图页面元素判断,找到其中一个元素,就可以停止线程并且退出。
例如页面中查找已登陆,未登陆两个字体,并发两个线程查找,其中一个线程找到就退出,其他线程不需要继续查找,避免浪费资源
尽量避免使用多线程了,循环判断即可。 这类都是CPU敏感的才处理,多线程并不能减少时间,多线程只适合在网络请求这种IO敏感的情形下使用。
有道理,建议写入多线程的教程中
使用并发多线程查找确实比逐个屏幕识图快了。多次测试过。
例如查找已登录,未登录。用多线程只需要50毫秒完成。
不使用多线程需要300毫秒左右完成。相差的时间较大
停止也得等当前步骤运行完之后才能停止。对于找图模块来说,还是得先运行完才能停,并不能带来资源节省。
发现找不到相应页面元素所需要的时间大概是300毫秒,但是找到相应页面元素的时间是50毫秒。找不到时候耗费时间较长。