在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()