900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 多线程-共享全局变量(python版)

多线程-共享全局变量(python版)

时间:2024-06-19 02:33:07

相关推荐

多线程-共享全局变量(python版)

多线程-共享全局变量

from threading import Threadimport timeg_num = 100def work1():global g_numfor i in range(3):g_num += 1print("----in work1, g_num is %d---"%g_num)def work2():global g_numprint("----in work2, g_num is %d---"%g_num)print("---线程创建之前g_num is %d---"%g_num)t1 = Thread(target=work1)t1.start()#延时一会,保证t1线程中的事情做完time.sleep(1)t2 = Thread(target=work2)t2.start()

运行结果:

---线程创建之前g_num is 100-------in work1, g_num is 103-------in work2, g_num is 103---

列表当做实参传递到线程中

from threading import Threadimport timedef work1(nums):nums.append(44)print("----in work1---",nums)def work2(nums):#延时一会,保证t1线程中的事情做完time.sleep(1)print("----in work2---",nums)g_nums = [11,22,33]t1 = Thread(target=work1, args=(g_nums,))t1.start()t2 = Thread(target=work2, args=(g_nums,))t2.start()

运行结果:

----in work1--- [11, 22, 33, 44]----in work2--- [11, 22, 33, 44]

总结:

在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好)缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)

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