美文网首页小资料工程师乐园
python: 多线程threading模块

python: 多线程threading模块

作者: luffynoonepiece | 来源:发表于2020-06-29 15:01 被阅读0次

python的多线程模块threading基本使用介绍

import threading

threading模块的Thread类是核心,用于创建 thread对象

关键语句为:
#Target是最重要的参数,此处将一个callable对象(函数)赋值给Target
thread = threading.Thread(target = test)
thread.start()

有两种方式使用threading模块

1.面向过程

以下sample code有介绍daemon,join(),is_alive()等参数和方法

import threading
#threading.current_thread()方法可以返回线程本身,访问它的name属性
def test():
    for i in range(5):
        print(threading.current_thread().name,i)
        print(thread.is_alive())

#MainThread 结束,子线程也立马结束 ==> 在子线程的构造器中传递 daemon 的值为 True
thread = threading.Thread(target=test,daemon = False)
thread.start()
# Thread 的 is_alive() 方法查询线程是否还在运行。
#print(thread.is_alive())
# Thread 的 join() 方法,可以阻塞自身所在的线程。
#thread.join()

for i in range(5):
    print(threading.current_thread().name,i)

执行结果

Thread-1 0
MainThread 0
True
MainThread 1
Thread-1 1
MainThread 2
True
MainThread 3
Thread-1 2
MainThread 4
True
Thread-1 3
True
Thread-1 4
True

2.面向对象

此方法为新建子类继承threading模块的Thread类,并修改它的run函数

import threading
import time

class test_thread(threading.Thread):
    def __init__(self,name = None):
        threading.Thread.__init__(self,name=name)

    def run(self):
        for i in range(5):
            print(threading.current_thread().name,i)
            time.sleep(2)

thread = test_thread(name = 'TestThread')
thread.start()

for i in range(5):
    print(threading.current_thread().name+' main',i)
    print(thread.name+' is alive',thread.is_alive())
    time.sleep(2)

执行结果

TestThread 0
MainThread main 0
TestThread is alive True
MainThread main 1
TestThread is alive True
TestThread 1
MainThread main 2
TestThread is alive True
TestThread 2
MainThread main 3
TestThread is alive True
TestThread 3
MainThread main 4
TestThread is alive True
TestThread 4
蟹蟹

相关文章

  • 线程

    多线程--threading python的thread模块是比较底层的模块,python的threading模块...

  • 1.6.1 Python线程使用 -- threading

    多线程-threading python的thread模块是比较底层的模块,python的threading模块是...

  • 线程实战

    多线程-threading python的thread模块是比较底层的模块,python的threading模块是...

  • 06.系统编程-2.线程

    1、多线程-threading python的thread模块是比较底层的模块,python的threading模...

  • 线程 threading

    1. 多线程-threading python的thread模块是比较底层的模块,python的threading...

  • python多线程

    1.通过threading模块使用多线程 python中多线程的方式是引用threading模块 2.Thread...

  • 多线程

    threading 模块 在 Python 中实现多线程,可以利用 threading 模块中的 Thread 来...

  • Python中线程的理解

    Num01-->多线程threading Python中建议使用threading模块,而不要使用thread模块...

  • python多线程编程

    python提供多线程编程模块有三个:thread、threading、Queen,主要使用threading模块...

  • Python 多线程 threading和multiproces

    Python 多线程 threading和multiprocessing模块 Python中常使用的线程模块 th...

网友评论

    本文标题:python: 多线程threading模块

    本文链接:https://www.haomeiwen.com/subject/sjbofktx.html