鱼C论坛

 找回密码
 立即注册
查看: 1400|回复: 3

[已解决]多线程最优化问题(我朋友问的,我不会

[复制链接]
发表于 2020-2-29 10:00:51 | 显示全部楼层 |阅读模式
2鱼币
win7系统下pycharm显示ran out of input,请问怎么解决,找了一天都没找到
我加入了import dill as pickle。不加的话会报错不能pickle lambda。加入后会报错ran out of input.
但是我看这个input不是我自己程序中的input,好像是多线程自身启动时的input,崩溃中。。。
javascript:;
javascript:;
最佳答案
2020-2-29 10:00:52
本帖最后由 zero_sunshine 于 2020-3-6 09:30 编辑

你调用的库不是多线程,而是多进程

多进程的使用有限制:
1.多进程的任务只能使用函数来提交,不能使用其他类型的可调用对象,例如:实例方法,lambda等。
2.函数的参数和返回值必须是可pickle的。

我没有看你的代码,但是我猜有两种方式可以解决你的问题:
1.将多进程修改为多线程。
2.将lambda表达式改成函数。

提醒:
1.多进程的使用开销很大,如果不是计算量非常大的程序尽量不要使用。
2.进程间的通信很困难,这导致各个进程之间同步也很耗时,所以尽量把并行的函数写得足够简单。
呵呵.jpg

ss.py.zip

2.05 KB, 下载次数: 1

最佳答案

查看完整内容

你调用的库不是多线程,而是多进程 多进程的使用有限制: 1.多进程的任务只能使用函数来提交,不能使用其他类型的可调用对象,例如:实例方法,lambda等。 2.函数的参数和返回值必须是可pickle的。 我没有看你的代码,但是我猜有两种方式可以解决你的问题: 1.将多进程修改为多线程。 2.将lambda表达式改成函数。 提醒: 1.多进程的使用开销很大,如果不是计算量非常大的程序尽量不要使用。 2.进程间的通信很困难, ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-29 10:00:52 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zero_sunshine 于 2020-3-6 09:30 编辑

你调用的库不是多线程,而是多进程

多进程的使用有限制:
1.多进程的任务只能使用函数来提交,不能使用其他类型的可调用对象,例如:实例方法,lambda等。
2.函数的参数和返回值必须是可pickle的。

我没有看你的代码,但是我猜有两种方式可以解决你的问题:
1.将多进程修改为多线程。
2.将lambda表达式改成函数。

提醒:
1.多进程的使用开销很大,如果不是计算量非常大的程序尽量不要使用。
2.进程间的通信很困难,这导致各个进程之间同步也很耗时,所以尽量把并行的函数写得足够简单。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-3 11:51:21 | 显示全部楼层
顶一下,好像暑假人少啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-6 10:33:28 | 显示全部楼层
学习了。!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 09:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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