新手区 大佬们,求教 python 多线程知识哇,为啥多线程先运行的不先执行,非要系统命令执行完才执行哇

红客联盟 · 2018年09月11日 · 最后由 海贼333 回复于 2018年09月11日 · 3130 次阅读

import uiautomator2 as u2
import threading
import os,time

d = u2.connect('')
def quan():
# time.sleep(3)
while True:
print(time.time())
try:
d(resourceId="com.kingroot.kinguser:id/button_right").click()
except:
pass
try:
d(resourceId="vivo:id/vivo_adb_install_ok_button").click()
except:
pass
try:
d(resourceId="android:id/button1").click()
except:
pass
print(d.info)
threading.Thread(target=quan).start()# 这里已经先启动多线程了,就是不执行
try:
os.system("adb uninstall " )
except:
pass
os.system("adb install -r " )# 多线程等待这个执行完才执行,不科学
d.app_start("")

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 7 条回复 时间 点赞

并且发现多线程执行是随心所欲的,权限选择都超时了还不执行,有时候又执行很快,怎么解决啊

先把你的代码用 markdown 改一下吧,看着好难受

你肯定根本没看过多线程的使用文档。有个 setDaemon(),和 join(),控制子父进程执行顺序的。你这两个都没设置意味着子进程和父进程同时进行,谁快就谁先运行。

wzy287522564 回复

哇,是没仔细看,本着拿来先用的原则搞得,写两个线程就好了

wzy287522564 回复

我就只有一个线程,哪里有父线程哦

红客联盟 回复

对于你这段代码,除了 threading 那行,都是父进程,或者说主进程

张哥稳。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册