正如我在标题中所说,我想创建string variables
使用. 并使用删除它们。Threads
input
flag
我需要一步步解释这个问题。
比方说,我input
从用户那里得到。这input
由用户将是 的名称Thread variable
。
让input
等于love
和like
。在这种情况下,将创建 2 个线程变量和线程。他们的名字将是love
and like
。
要创建一个Thread
,必须给出这样的代码。
代码:
from threading import Thread
import time
import re
# Using while loop. Because I want to create multiple Threads by doing this.
# Dicts
dicts = {}
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。
我希望我能解释清楚。希望你帮忙。
繁星coding
相关分类