python同步应用:多个线程有序执行

来源:互联网 发布:shopinfo.php 漏洞 编辑:程序博客网 时间:2024/06/07 19:09

可以使用互斥锁完成多个任务,有序的进程工作,这就是线程的同步

from threading import Thread, Lock

import time

mutex1= Lock()  #创建一个互斥锁

mutex2= Lock()  #创建一个互斥锁

mutex3= Lock()  #创建一个互斥锁

 

 

def fun1():

    while 1:

        mutex1.acquire()  #阻塞

        print("线程1执行")

        mutex2.release()   #释放锁2,让线程2继续执行

        time.sleep(0.1)

 

 

def fun2():

    while 1:

        mutex2.acquire()  #阻塞

        print("线程2执行")

        mutex3.release()   #释放锁3,让线程3继续执行

        time.sleep(0.1)

 

 

def fun3():

    while 1:

        mutex3.acquire()  #阻塞

        print("线程3执行")

        mutex1.release()   #释放锁1,让线程1继续执行

        time.sleep(0.1)

 

t1 =Thread(target=fun1)  #创建一个线程对象

t2 =Thread(target=fun2)  #创建一个线程对象

t3 =Thread(target=fun3)  #创建一个线程对象

 

mutex2.acquire()  #将锁2设置为上锁,线程2不能运行

mutex3.acquire()  #将锁2设置为上锁,线程2不能运行

 

t1.start()  #开启线程的执行

t2.start()

t3.start()

 

t1.join()  #回收线程资源

t2.join()

t3.join()

原创粉丝点击