为了账号安全,请及时绑定邮箱和手机立即绑定

如何为线程创建字符串变量并使用标志删除它们

如何为线程创建字符串变量并使用标志删除它们

繁星点点滴滴 2023-06-20 14:36:49
正如我在标题中所说,我想创建string variables使用. 并使用删除它们。Threadsinputflag我需要一步步解释这个问题。比方说,我input从用户那里得到。这input由用户将是 的名称Thread variable。让input等于love和like。在这种情况下,将创建 2 个线程变量和线程。他们的名字将是loveand like。要创建一个Thread,必须给出这样的代码。代码:from threading import Threadimport timeimport re# Using while loop. Because I want to create multiple Threads by doing this.# Dictsdicts = {}flags = {}while True:    # Input    threadName = input('Thread name please? ')    # To delete a Thread    if 'delete' in threadName:        delThread = re.search(r'delete (.*)', threadName)        if delThread:            delThread = list(map(str, delThread.groups()))            delThread = ''.join(delThread)            print('DELETING:', delThread)            flags[delThread] = True            print('DICT NOW:', flags)    else:        # Target function for every Thread. Print a message every 3 secs.        def targetfunc(tname):            while True:                if flags[tname] in flags and flags[tname] == True:                    break                print(f"I'm {tname} Thread.")                time.sleep(3)        # Create Threads. 'dicts[threadName]' will be whatever the user enters input.        # Should be string variable.        # 'threadName' is equal to input too.         dicts[threadName] = Thread(target = targetfunc, args = [threadName])        dicts[threadName].start()        flags[threadName] = False        print(dicts)        print(flags)我正在使用 2 个字典。一个dicts用于创建Threads,另一个用于使用删除它们flag。要创建,只需键入您要调用的线程即可。要删除,请键入delete (thread name)。KeyError当我尝试删除时,此代码会为每个线程抛出。这是完整的错误。这就是程序。如何解决这个问题?我想要实现的是:当我键入名称时,该名称必须创建一个Thread具有该名称的新名称。但是当我输入时delete (thread name)应该停止(thread name) Thread。我希望我能解释清楚。希望你帮忙。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

问题是您正在检查字典条目而不是检查该键是否存在。

更改此行:

if flags[tname] in flags and flags[tname] == True:

对此:

if tname in flags and flags[tname] == True:

通过此更改,代码可以正确运行。


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信