欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python—多线程之数据混乱问题

发布时间:2025/3/21 python 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python—多线程之数据混乱问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、加入线程同步的原因
由于同一进程中的所有线程都是共享数据的,如果对线程中共享数据的并发访问不加以限制,结果将不可预期,在严重的情况下,还会产生死锁
在一个进程内的所有线程共享全局变量,能够在不使用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好)
缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)
二、解决数据混乱的方法
为了让线程是安全的,解决方法:
1、为了解决这个问题,需要允许线程独占地访问共享数据,这就是线程同步。
2、让每个线程拥有一个独立的私有变量

三、数据混乱示意图

四、代码实现数据混乱问题

执行结果为:数据混乱
但是当我把累加次数设置小,就不会出现数据混乱问题

数据混乱的原因:
cpu分成多个时间片段,启动10线程,分配10个cpu时间片段,当我累加数字设置比较小的时候,在单个cpu时间片段内,for循环代码就执行完,就不会产生数据混乱的。当我数据设置的比较大时,在单个cpu时间片段内,for循环代码就执行不完,并且没有分配2个或2个以上的连续的cpu时间片段导致一个cpu时间片段没有执行完该线程,下一个线程开始执行了

总结

以上是生活随笔为你收集整理的python—多线程之数据混乱问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。