pythonthreading线程同步如何实现

美女程序员鼓励师

说明

1、threading模块具有实现锁定的内置功能,允许同步线程。

为了防止数据损坏或丢失,需要锁定来控制共享资源的访问。

2、可以调用Lock()方法来应用锁,它新的锁对象。

可以调用锁对象的获取(阻塞)方法来强制线程同步运行。

实例

#Python 多线程示例来演示锁定。

#1. 使用 threading.Thread 类定义子类。

#2. 实例化子类并触发线程。

#3. 在线程的 run 方法中实现锁。

 

import threading

import datetime

 

exitFlag = 0

 

class myThread (threading.Thread):

    def __init__(self, name, counter):

        threading.Thread.__init__(self)

        self.threadID = counter

        self.name = name

        self.counter = counter

    def run(self):

        print("\nStarting " + self.name)

        # 获取锁同步线程

        threadLock.acquire()

        print_date(self.name, self.counter)

        # 为下一个线程释放锁

        threadLock.release()

        print("Exiting " + self.name)

 

def print_date(threadName, counter):

    datefields = []

    today = datetime.date.today()

    datefields.append(today)

    print("{}[{}]: {}".format( threadName, counter, datefields[0] ))

 

threadLock = threading.Lock()

threads = []

 

# 创建新线程

thread1 = myThread("Thread", 1)

thread2 = myThread("Thread", 2)

 

# 启动新线程

thread1.start()

thread2.start()

 

# 添加线程到线程列表

threads.append(thread1)

threads.append(thread2)

 

# 等待所有线程完成

for thread in threads:

    thread.join()

 

print("\nExiting the Program!!!")

以上就是python threading线程同步的实现,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

以上是 pythonthreading线程同步如何实现 的全部内容, 来源链接: utcz.com/z/545518.html

回到顶部