在python中,如何从用户那里获取输入,并在输入时并行运行另一个连续计算
这是我的密码在python中,如何从用户那里获取输入,并在输入时并行运行另一个连续计算,python,python-3.x,parallel-processing,multiprocessing,python-multiprocessing,Python,Python 3.x,Parallel Processing,Multiprocessing,Python Multiprocessing,这是我的密码 import multiprocessing,time class titan: food = 500 def foo(self): titan.food = titan.food - 10 print(titan.food, 'food left') time.sleep(.5) def ask(self): if titan.food < 400:
import multiprocessing,time
class titan:
food = 500
def foo(self):
titan.food = titan.food - 10
print(titan.food, 'food left')
time.sleep(.5)
def ask(self):
if titan.food < 400:
x = input("give food?")
if x == 'yes':
titan.food = titan.food + 100
print('food refilled!----->>>>', titan.food)
elif x == 'no':
print('u making me dead')
else:
print('enter valid input')
elif titan.food == 0:
print("My time has come !!! + ")
break
a = titan()
p1 = multiprocessing.Process(target=a.foo)
p2 = multiprocessing.Process(target=a.ask)
p1.start()
p2.start()
p1.join()
p2.join()
导入多处理,时间
泰坦级:
食物=500
def foo(self):
泰坦食物
印刷品(titan.food,“食物剩余”)
时间。睡眠(.5)
def ask(自我):
如果titan.food<400:
x=输入(“给食物?”)
如果x==‘是’:
泰坦食物=泰坦食物+100
打印('food refilled!->>>>',titan.food)
elif x==‘否’:
打印(‘你让我死了’)
其他:
打印('输入有效输入')
elif titan.food==0:
打印(“我的时间到了!!!+”)
打破
a=土卫六()
p1=多处理。进程(目标=a.foo)
p2=多处理进程(target=a.ask)
p1.开始()
p2.start()
p1.join()
p2.join()
因此,基本上我找不到一种方法来接受输入并同时减少食物直到它死去。你应该使用
线程处理而不是多处理
这是编辑
导入时间
从线程导入线程
泰坦级:
食物=500
def foo(self):
#也许你应该在这里做一个循环?
尽管如此:
#通常,您应该更改实例属性而不是类属性。
#所以最好更新self.food,而不是titan.food。
self.food=self.food-10
打印(self.food,“food left”)
时间。睡眠(.5)
#如果food为@YashikSingh,您可能希望退出,您可以在创建p2时添加daemon=True,这样p2将不会阻止程序退出,并删除p2.join()