У меня есть следующий код Python:Python не может убить процесс
main():
t1 = Thread(target=consumer, args=(q,))
t2 = Thread(target=server, args=(q,))
t1.start()
t2.start()
def server(q):
while(1):
# Produce some data
data = s.recv(1000)
q.put(data)
def consumer(in_q):
while True:
data = in_q.get()
if(data.__len__() >0):
pieces = data.split("\t")
if 'L' in pieces[0]:
l = multiprocessing.Process(target=fun1())
l.start()
n.terminate()
n.join()
elif 'N' in pieces[0]:
n = multiprocessing.Process(target=fun2())
n.start()
l.terminate()
l.join()
def func1():
while(1):
//Do something
def func2():
while(1):
//Do something code here
Я хочу, чтобы убить или остановить процесс «л», когда «п» работает и наоборот. Я пробовал .terminate()
, но я не мог убить процесс.
Является ли многопроцессорным способом правильным способом? Может ли кто-нибудь сказать мне, пожалуйста, что мне не хватает? Любые намеки приветствуются.
Посмотрите на это: http://stackoverflow.com/help/mcve Ваш пример почти прав, но вам не хватает нескольких вещей, необходимых вам. Удачи. –
В вашем коде: s никогда не определено, q никогда не определено, n не определено в блоке «if L», l не определено в блоке «If N». У вас есть рабочий пример, чтобы мы могли рассуждать. – Setop