请教一个python3 tkinter 多线程问题

for i in range(len(answers)):

submitdata = answers[i]
self.threading_run(submitdata)

  
def threading_run(self,submitdata):
  requests.post ....

有没有办法用单线程,去模拟1. 去操作,现在我用的是tkinter,主线程就会卡主界面,
能不能用线程,只有第一个线程运行完毕后,才去执行第二个线程

我把他改为了

for i in range(len(answers)):

submitdata = answers[i]
#self.threading_run(submitdata)  #单线程
T = threading.Thread(target=self.threading_run, args=(submitdata,))  #多线程
T.start()
T.join()

又发现界面卡死了 ... 咋办啊...

qq_笑_17
浏览 1656回答 2
2回答

ITMISS

你不能使用t.join(),这样跟同步执行没什么区别

海绵宝宝撒

python3有gil锁,多线程是假的,cpu每个时间只会执行一个线程,所以你的主界面卡死了。考虑换成协程或者多进程才可以实现异步
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python