python系统编程02-使用threading模块如何创建线程

  • python头通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的原始线程以及一个简单的锁。

thread类提供了以下方法:


 

  • run():用以表示线程活动的方法;

  • start():启动线程活动;

  • join([time]):等待至线程中止。这阻塞调用线程直至线程的join()方法被调用终止-正常退出或者抛出未处理的异常-或者是可选的超时发生;

  • isAlive():返回线程是否活动;

  • getNAME():返回线程名;

  • setNAME():设置线程名;

  • threading.currentThread():返回当前线程变量;

  • threading.enumerate():返回一个包含正在运行的线程list。正在运行指线程启动后、结束前,不包含启动前和终止后的线程。

  • threading.activeCount():返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

 


 使用threading模块创建线程的方式为:自定义一个继承自threading.Thread的类,然后充血__init__方法和run方法。


 

import threading
import time

exitFlag = 0


class myThread(threading.Thread):
    def __init__(self, threadID, name, counter):  
        threading.Thread.__init__(self)  # 重写__init__方法
        self.threadID = threadID
        self.name = name
        self.counter = counter

    def run(self):  # 要执行的代码写到run函数里面,线程创建后会直接运行run函数
        print("Starting" + self.name)
        print_time(self.name, self.counter, 5)
        print("Exiting" + self.name)


def print_time(threadName, delay, counter):
    while counter:
        if exitFlag:
            threading.Thread.exit()
        time.sleep(delay)
        print("%s:%s" % (threadName, time.ctime(time.time())))
        counter -= 1


# 创建新线程
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-1", 2)
# 开启线程
thread1.start()
thread2.start()

print("Exiting Main Thread")

 

运行结果如下图所示:

 

posted @ 2021-08-19 21:58  Five_Stars  阅读(118)  评论(0)    收藏  举报