多个线程通过互斥锁有序的执行

Posted qiushanjian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多个线程通过互斥锁有序的执行相关的知识,希望对你有一定的参考价值。

from threading import Thread,Lock
from time import sleep

class Task1(Thread):
	"""y‘;]lopppdocstring for Task1"""
	def run(self):

	 	while 1:
	 		if lock1.acquire():
	 			print("---task1----")
	 			sleep(1)
	 			lock2.release()


class Task2(Thread):
	"""docstring for Task2"""
	def run(self):
		while 1:
			if lock2.acquire():
				print("---task2----")
				sleep(1)
				lock3.release()

		
class Task3(Thread):
	"""docstring for Task3"""
	def run(self):
		while 1:
			if lock3.acquire():
				print("---task3----")
				sleep(1)
				lock1.release()
		

#创建3把锁
#使用lock创建的锁,默认没有“上锁”
lock1 = Lock()

lock2 = Lock()
lock2.acquire()

lock3 = Lock()
lock3.acquire()


t1 = Task1()
t2 = Task2()
t3 = Task3()

t1.start()
t2.start()
t3.start()

  

以上是关于多个线程通过互斥锁有序的执行的主要内容,如果未能解决你的问题,请参考以下文章

ReentrantReadWriteLock场景应用

多线程与互斥锁

Linux多线程中互斥锁读写锁自旋锁条件变量信号量详解

线程同步

java中ReentrantReadWriteLock读写锁的使用

并发编程--线程开启线程守护线程线程互斥锁