这主要介绍一下treading模块
最简单的方法
tred=threading.Thread(target=start)
tred.start() #开始线程
tred.join() #等待线程介绍
注意一定要写target,要不然启动的就不是线程。
那么如何自动让线程终止呢?,这里我们可以自己写一个方法来继承treading模块。
其实就是利用父进程退出时子进程也会退出的思想来编写即可。
代码如下:
class TestThread(threading.Thread):
def __init__(self,func,thread_num=0, timeout=1.0):
super(TestThread, self).__init__()
self.thread_num = thread_num
self.func=func
self.stopped = False
self.timeout = timeout
def run(self):
subthread = threading.Thread(target=self.func, args=())
subthread.setDaemon(True)
subthread.start()
while not self.stopped:
subthread.join(self.timeout)
print('Thread stopped')
def stop(self):
self.stopped = True
def isStopped(self):
return self.stopped
好像上面的方法没用。。。。
算了,还是用线程通信吧。。。
线程对象 q = queue.Queue()
线程放数据 q.put()
线程获取数据 q.get()
还有一个判断数据是否为空的q.empty()