注册
登录
查看:344 | 回复:6
飞花
while(1):pass为什么可以执行循坏外多进程
发表于 2023/5/8 14:01:58
楼主

有两个问题,求助大佬

1,while (1) 为什么可以执行循环体外的程序。 2,去掉 while (1) 为什么进程无法启动。




飞花
发表于 2023/5/8 14:03:31
沙发

python爬虫代理

飞花
发表于 2023/5/8 14:07:20
板凳

python

python

python

Jason
发表于 2023/5/8 14:09:10
4楼

while True 为什么可以执行循环体外的程序。


python多线程


Jason
最佳答案 发表于 2023/5/8 14:12:25
5楼

去掉 while True 为什么进程无法启动。(后面没代码了,代表主线程结束)

当主线程退出时,由系统决定其他线程是否存活。在大多数系统中,这些线程会直接被杀掉。

Jason
发表于 2023/5/8 14:16:32
6楼

各进程的代码, 基本上是独立执行的, 但如果有相关的共用区, 如变量, 数据库等, 彼此之间系就更复杂了, 比如你正在读写文件, 我也要读写文件, 那会不会彼此要更新的内容被对方给更新了, 所以作业的方式变得难搞了。

主进程的死循环输出一个print,为什么子进程的输出却没有了呢? 应该是有的, 这里主线程是一直打印的, 而线程中是暂停2~4秒才打印一次, 所以有可能主线程打印了八万行, 才有线程打印了一行, 你可能不容易看到。


飞花
发表于 2023/5/8 14:18:48
7楼

也就是说while True的作用在于保持主进程存活,主进程存活的时候子进程才能继续执行,而进程间的代码是独立执行的对吗?

感谢大佬的解惑!


立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品