多线程-非共享数据(python 版)

 2023-09-06 阅读 20 评论 0

摘要:多线程-非共享数据 对于全局变量,在多线程中要格外小心,否则容易造成数据错乱的情况发生 1. 非全局变量是否要加锁呢? #coding=utf-8import threadingimport timeclass MyThread(threading.Thread):# 重写 构造方法def __init__(self,num,sleepTime)

多线程-非共享数据

对于全局变量,在多线程中要格外小心,否则容易造成数据错乱的情况发生

1. 非全局变量是否要加锁呢?

 #coding=utf-8import threadingimport timeclass MyThread(threading.Thread):# 重写 构造方法def __init__(self,num,sleepTime):threading.Thread.__init__(self)self.num = numself.sleepTime = sleepTimedef run(self):self.num += 1time.sleep(self.sleepTime)print('线程(%s),num=%d'%(self.name, self.num))if __name__ == '__main__':mutex = threading.Lock()t1 = MyThread(100,5)t1.start()t2 = MyThread(200,1)t2.start()
 import threadingfrom time import sleepdef test(sleepTime):num=1sleep(sleepTime)num+=1print('---(%s)--num=%d'%(threading.current_thread(), num))t1 = threading.Thread(target = test,args=(5,))t2 = threading.Thread(target = test,args=(1,))t1.start()t2.start()

小总结

  • 在多线程开发中,全局变量是多个线程都共享的数据,而局部变量等是各自线程的,是非共享的

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/9835.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息