python多线程(实践)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多线程(实践)相关的知识,希望对你有一定的参考价值。

前言:

上面讲了单线程,现在就将一下多线程,直接上代码:

 

1.创建threading.Thread的子类来包装一个线程对象

 #encoding:utf8

    import threading

    import time

    class timer(threading.Thread):

    def __init__(self,num,interval):

    threading.Thread.__init__(self)

    #设置产生线程的个数

    self.thread_num = num

    #产生线程的相隔时间

    self.interval = interval

    self.thread_stop = False

    def run(self):

    while not self.thread_stop:

    print ‘Thread Object(%d),Time:%s\\n‘%(self.thread_num,time.ctime())

    time.sleep(self.interval)

    def stop(self):

    self.thread_stop = True

    def test():

    thread1 = timer(1,1)

    thread2 = timer(2,2)

    thread1.start()

    thread2.start()

    time.sleep(10)

    thread1.stop()

    thread2.stop()

    return

    if __name__ == ‘__main__‘:

    test()

如图:

技术分享

 技术分享

运行结果:

技术分享

 threading.Thread类的使用:

    1).在自己的线程类的__init__里调用threading.Thread.__init__(self, name = threadname)

    Threadname为线程的名字

    2). run(),通常需要重写,编写代码实现做需要的功能。

    3).getName(),获得线程对象名称

    4).setName(),设置线程对象名称

    5).start(),启动线程

    6).jion([timeout]),等待另一线程结束后再运行。

    7).setDaemon(bool),设置子线程是否随主线程一起结束,必须在start()之前调用。默认为False。

    8).isDaemon(),判断线程是否随主线程一起结束。

    9).isAlive(),检查线程是否在运行中。

    此外threading模块本身也提供了很多方法和其他的类,可以帮助我们更好的使用和管理线程

明天给大家讲

简单的同步

 

 

以上是关于python多线程(实践)的主要内容,如果未能解决你的问题,请参考以下文章

python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)

python并发编程之多线程(实践篇)

如何理解python的多线程编程

python 多线程实现循环打印 abc

并发编程之多进程(实践)

Python中socket经ssl加密后server开多线程