600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 多线程共享全局变量以及锁机制

多线程共享全局变量以及锁机制

时间:2022-11-25 20:48:25

相关推荐

多线程共享全局变量以及锁机制

多线程都是在同一个进程中运行的。因此在进程中的全局变量所有线程都是共享的,这就造成一个问题,因为线程执行的顺序是无序的,有可能会造成数据错误,为了解决这个问题,

threading提供了一个lock类,这个类可以在某个线程访问某个变量时加锁,其他线程此时不能进来,直到当前线程处理完后,把锁释放后,其他想线程才能进来处理。

示例代码如下:

#encoding: utf-8

import threading

VALUE = 0

gLock = threading.Lock()

def add_value():

global VALUE #引用全局变量VALUE

gLock.acquire() #加锁,在全局变量改变运用

for x in range(10000000):

VALUE +=1

gLock.release() #解锁

print('value:%d'%VALUE)

def main():

for x in range(2):

t = threading.Thread(target=add_value())

t.start()

if __name__ == '__main__':

main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。