鱼C论坛

 找回密码
 立即注册
查看: 2696|回复: 8

[已解决]Python线程停止,没有报错也没有执行,是什么情况?

[复制链接]
发表于 2018-5-13 17:11:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import multiprocessing
  2. import time

  3. def worker_1(interval):
  4.     print("worker_1")
  5.     time.sleep(interval)
  6.     print ("end worker_1")

  7. pool = multiprocessing.Pool(processes=1)

  8. pool.apply(worker_1, args = (2,))
复制代码


在Python中运行这个小程序,没有任何的错误,但是也没有运行,请问这是怎么回事呢?
最佳答案
2018-5-14 10:46:51
worker_1
end worker_1
[Finished in 2.2s]
==============
这是我Mac本上的测试结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-13 19:33:42 | 显示全部楼层
多线程有线错误IDLE是看不出来的。直接运行.py文件

既然是多线程,那必定要有主线程。
  1. import multiprocessing
  2. import time

  3. def worker_1(interval):
  4.     print("worker_1")
  5.     time.sleep(interval)
  6.     print ("end worker_1")
  7.    
  8. if __name__ == "__main__":
  9.     pool = multiprocessing.Pool(processes=1)

  10.     pool.apply(worker_1, args = (2,))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-13 21:01:03 | 显示全部楼层
ba21 发表于 2018-5-13 19:33
多线程有线错误IDLE是看不出来的。直接运行.py文件

既然是多线程,那必定要有主线程。

刚才试了一下,发现是可以运行,但是没有执行print啊?worker_1和end worker_1都没显示呢,咋回事啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 10:46:51 | 显示全部楼层    本楼为最佳答案   
worker_1
end worker_1
[Finished in 2.2s]
==============
这是我Mac本上的测试结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-14 12:36:44 | 显示全部楼层
如果是这种情况的话,可能是我这边安装的问题。刚才重新试了一下,发现应该是multiprocessing这个安装包出了问题。我用另一个multiprocessing.dummy的试了一下,发现可以运行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-14 12:38:26 | 显示全部楼层
ABC23 发表于 2018-5-14 10:46
worker_1
end worker_1
[Finished in 2.2s]

请问你用的是Python3还是Python2呢?运行的是,我的code是么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 13:37:34 | 显示全部楼层
kunkun_1230 发表于 2018-5-14 12:38
请问你用的是Python3还是Python2呢?运行的是,我的code是么

py3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 20:24:08 | 显示全部楼层
kunkun_1230 发表于 2018-5-13 21:01
刚才试了一下,发现是可以运行,但是没有执行print啊?worker_1和end worker_1都没显示呢,咋回事啊

多线程有线错误IDLE是看不出来的。直接运行.py文件

说得还不够清楚明白吗???????????????????????????????????????????????????????
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 22:45:50 | 显示全部楼层
确实不知道是个什么问题,pycharm上面运行是正常的,自己直接写个多进程也能在idle交互上运行,难道是交互模式下不能用进程池?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-11 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表