import threadingimport timeexitFlag =0class 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("退出主线程.......")
总结
以上是内存溢出为你收集整理的Python 多线程,线程同步全部内容,希望文章能够帮你解决Python 多线程,线程同步所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)