关于while(1):pass为什么可以执行循坏外多进程的疑问?
问题描述
1,while(1)为什么可以执行循环体外的程序。
2,去掉while(1)为什么进程无法启动。
个人预期
程序从上到下执行,创建两个进程,同时调用函数,执行函数内的循环体,出错执行except,最后一直执行死循环while(1)。我尝试在while(1)里输出内容,结果程序不输出函数里的内容,只是死循环while(1)里的print。
import _thread
import time
# 为线程定义一个函数
def print_time( threadName, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print ("%s: %s" % ( threadName, time.ctime(time.time()) ))
# 创建两个线程
try:
_thread.start_new_thread( print_time, ("Thread-1", 2, ) )
_thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
print ("Error: 无法启动线程")
while 1:
pass
正常结果
Thread-1: Fri Jun 25 17:43:55 2021
Thread-2: Fri Jun 25 17:43:57 2021
Thread-1: Fri Jun 25 17:43:57 2021
Thread-1: Fri Jun 25 17:43:59 2021
Thread-2: Fri Jun 25 17:44:01 2021
Thread-2: Fri Jun 25 17:44:05 2021
去掉while(1):pass 的结果
进程已结束,退出代码 0
while(1)里添加print(‘死循环’)
循环
死循环
死循环
死循环
...
while True
为什么可以执行循环体外的程序。去掉
while True
为什么进程无法启动。(后面没代码了, 代表主线程结束)