多线程


这主要介绍一下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()


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录