打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
0121 threading库 多线程练习
import threadingimport time#线程实现def run(n):    print("task",n)    time.sleep(1)    print("3s")    time.sleep(1)    print("2s")    time.sleep(1)    print("1s")    time.sleep(1)    print("0s")    time.sleep(1)def run(n):    for i in range(1,101):        print(n,"跑了",i,"米")if __name__ == '__main__':    t1 = threading.Thread(target=run,args=("刘奕铭",))    t2 = threading.Thread(target=run, args=("付强",))    t3 = threading.Thread(target=run, args=("孙鑫",))    t1.start()    t2.start()    t3.start()#自定义线程class MyThread(threading.Thread):    def __init__(self,n):        super().__init__()        self.n = n    def run(self):        for i in range(1,101):            print(self.n,"跑了",i,"米")if __name__ == "__main__":    t1 = MyThread("付强")    t2 = MyThread("孙鑫")    t3 = MyThread("刘奕铭")    t1.start()    t2.start()    t3.start()#守护线程def run(n):    print("task",n)    time.sleep(1)    print("3s")    time.sleep(1)    print("2s")    time.sleep(1)    print("1s")    time.sleep(1)    print("0s")    time.sleep(1)def run(n):    for i in range(1,101):        print(n,"跑了",i,"米")if __name__ == '__main__':    t1 = threading.Thread(target=run,args=("刘奕铭",))    t2 = threading.Thread(target=run, args=("付强",))    t3 = threading.Thread(target=run, args=("孙鑫",))    t1.setDaemon(True)    t2.setDaemon(True)    t3.setDaemon(True)    t1.start()    t2.start()    t3.start()    t1.join()    t2.join()    t3.join()    print("end")#多线程piao = 100def worker(n):    global piao    while piao>0:        lock.acquire()        piao -= 1        lock.release()        print(n,"买了一张票,剩余:",piao)if __name__ == "__main__":    lock = threading.Lock()    t1 = threading.Thread(target=worker,args=("worker1",))    t2 = threading.Thread(target=worker,args=("worker2",))    t2.start()    t1.start()    t1.join()    t2.join()from threading import Thread,Lockimport os,timedef work():    global n    lock.acquire()    temp=n    time.sleep(0.1)    n=temp-1    lock.release()if __name__ == '__main__':    lock=Lock()    n=100    l=[]    for i in range(100):        p=Thread(target=work)        l.append(p)        p.start()    for p in l:        p.join()# 利用Event类模拟红绿灯import threadingimport timeevent = threading.Event()def lighter():    count = 0    event.set()  # 初始值为绿灯    while True:        if 5 < count <= 10:            event.clear()  # 红灯,清除标志位            print("\33[41;1mred light is on...\033[0m")        elif count > 10:            event.set()  # 绿灯,设置标志位            count = 0        else:            print("\33[42;1mgreen light is on...\033[0m")        time.sleep(1)        count  = 1def car(name):    while True:        if event.is_set():  # 判断是否设置了标志位            print("[%s] running..." % name)            time.sleep(1)        else:            print("[%s] sees red light,waiting..." % name)            event.wait()            print("[%s] green light is on,start going..." % name)light = threading.Thread(target=lighter, )light.start()car = threading.Thread(target=car, args=("MINI",))car.start()
来源:https://www.icode9.com/content-4-829151.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++ 常用并发库有哪些
你真的了解Python吗?什么场景使用多线程,什么场景使用多进程?
python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?
基于python实现多线程网页爬虫-【黑基网】 - 手机版
说说Python多线程与多进程的区别?
Python从0到1:threading多线程编程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服