Python 多线程,线程同步

import threading
import time


exitFlag =0

class myThread(threading.Thread):
    def __init__(self, threadID, name, counter):
        threading.Thread.__init__(self)
        self.threadID= threadID               #线程ID
        self.name = name                      #线程名称
        self.counter =counter                 #工作次数
    def run(self):
        print("开始线程" + self.name)
        #获取线程锁,用于线程同步,在程序结束前,其他线程函数不会执行
        threadLock.acquire()
        print_time(self.name, self.counter, 5)
        print("退出线程" + self.name)
        #释放线程锁,开启下一个线程工作
        threadLock.release()


#线程工作内容
def print_time(threadName, wait_sec, counter):    #传入线程名称,延迟时间,工作次数
    while counter:
        if exitFlag:
            threadName.exit()
        time.sleep(wait_sec)                 #延迟时间
        print("%s: %s" % (threadName, time.ctime(time.time())))
        counter -=1



#创建线程锁,用于线程同步
threadLock =threading.Lock()
#创建线程列表,将线程放入线程列表中顺序执行
threads =[]

#创建新线程
thread1= myThread(1,"thread-1",1)
thread2= myThread(2,"thread-2",1)

#开启新线程
thread1.start()
thread2.start()

#将线程加入线程列表
threads.append(thread1)
threads.append(thread2)

#循环遍历线程函数,线程按顺序进行工作
for t in threads:
    t.join()

print("退出主线程.......")

 

posted @ 2021-06-03 01:54  神迹丶  阅读(93)  评论(0编辑  收藏  举报
网站已运行: