I try to use below code to let the test1 func thread exit itself after 2 seconds,but find the timeout argument in t.join(timeout=2) doesn't work with test1 function's input() call.
import threading
class MyThread(threading.Thread):
def __init__(self, func, args, name=''):
threading.Thread.__init__(self)
self.name = name
self.func = func
self.args = args
def run(self):
self.result = self.func(*self.args)
def get_result():
return self.result
def test1():
a = input()
print("test1 func runs")
t = MyThread(test1, ())
t.setDaemon(True)
t.start()
t.join(timeout=2)
while 1:
import time
time.sleep(1)
In upon code,after 2 seconds,I input some words to sys.stdin,but it shows me "test1 func runs",that's to say,this line t.join(timeout=2)
doesn't work. Can you help me? How can I make the test1 function thread [with input() call] exit itself after 2 seconds?