本博客主要实现一个python多线程异步调用的demo。
程序功能简介:调用main_func
作为主程序,主程序内部创建两个线程,分别建立线程ID、线程名和线程内部执行延迟时间,两个线程内部分别调用函数print_time
打印时间。exitFlag
作为标志位,如果为1表示线程不打印时间直接退出。
结果分析:程序主线程已经执行结束,并不影响其建立的线程执行,所以可以实现异步调用。
程序代码:
import threading
import time
exitFlag = 0
class myThread (threading.Thread):
def __init__(self, threadID, name, delay):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.delay = delay
def run(self):
print ("开始线程:" + self.name)
print_time(self.name, self.delay, 3)
print ("退出线程:" + self.name)
def print_time(threadName, delay, times):
for i in range(times):
if exitFlag:
threadName.exit()
time.sleep(delay)
print ("%s: %s" % (threadName, time.ctime(time.time())))
def main_func():
# 创建新线程
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)
# 开启新线程
thread1.start()
thread2.start()
return '主程序执行结束!'
if __name__ == "__main__":
result = main_func()
print(result)