关于python3多线程的问题

代码如下:

图片说明
我在每次循环后开启一个线程,
想问一下,程序线程的运行是每循环一次开启一个线程,然后执行相应的程序等这个等这些线程执行完毕后再 进入下个循环,还是这个线程开启后(相应的线程没有执行完毕)紧接着就会进入下个循环,开启下个线程?
像上边的代码,我运行后,电脑直接卡死了,我的初衷只是开启5个线程...
请高手指点一下,谢谢。

5个回答

for 循环写的有问题,你这2个for循环,
例如:执行 第一个for 循环 k==1
然后执行第2个for循环(如果per_count=10的话,这里就有10个 k ==1 ,会创建10个线程,其他k==2 ,k==3的时候也是这样),自己看一下per_count的值,算一下创建了多少个线程。

另外:线程开启后(start),就会马上进入下个循环,和执行别的语句没什么区别
解决方式:
1、把线程拿出来不要放到for循环里面
2、例如 if k==0 and j ==0

qq_29603937
简单free 2、例如 if k==0 and j ==0 这个的意思是增加判断条件
2 年多之前 回复

程序线程的运行是每循环一次开启一个线程,这个线程开启后(相应的线程没有执行完毕)紧接着就会进入下个循环.
之所以运行后司机,我猜是因为for循环一直在运行
具体的原因,建议你使用ide的debug或者,或者自己在代码里加中断尝试

开一个线程后,就会继续进入下一个循环,这样就会产生很多的线程,你要看你的两个for估计总共产生了很多线程。导致系统hung了

使用ctypes强行杀掉之前的线程。不然线程循环开启就爆炸了

这个线程开启后(相应的线程没有执行完毕)紧接着就会进入下个循环,开启下个线程

开启线程后,线程和主代码同时执行。就像你一边吃米饭一边吃菜,同时的,不会等吃完米饭再吃菜

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐