gpt4 book ai didi

python - 当一个命令正在运行时执行其他命令

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:17 25 4
gpt4 key购买 nike

正如标题所述,当一个命令已经被处理时,我将如何执行其他命令?假设我有这个:

import urllib.request
import re
class runCommands:
def say(self,word):
return word
def rsay(self,word):
return word[::-1]
def urban(self,term):
data = urllib.request.urlopen("http://urbandictionary.com/define.php?term=%s" % term).read().decode()
definition = re.search('<div class="definition">(.*?)</div>',data).group(1)
return definition
def run(self):
while True:
command = input("Command: ")
command,data = command.split(" ",1)
if command == "say": print(self.say(data))
if command == "reversesay": print(self.rsay(data))
if command == "urbandictionary": print(self.urban(data))

现在,我意识到执行 runCommands().run() 时,我必须一次输入一个命令,但假设我是否可以输入多个命令,如下所示:

 me: "urbandictionary hello"
me: "reverse hello" # before it posts the result

我如何让它同时运行,即使它实际上会执行“urbandictionary hello”然后“reverse hello”,我听说 thready 可以做到这一点,但我不确定如何使用线程来做到这一点。即使我先做了“urbandictionary hello”,线程是否是在返回 hello 的城市字典结果之前实际发布“olleh”的唯一选择?

最佳答案

您需要一个作业队列线程模块。

下面是一个可以启发您并帮助您入门的示例:

from Queue import Queue
from threading import Thread

def worker():
while True:
item = q.get()
do_work(item)
q.task_done()

q = Queue()
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()

for item in source():
q.put(item)

q.join() # block until all tasks are done

关于python - 当一个命令正在运行时执行其他命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19671267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com