关于多线程
来源:7-2 实战—自定义页码处理类
Umud
2020-11-27 11:03:38
# 具体遇到的问题
Queue 队列类是用于多进程之间共享数据的,因为多进程没法直接通信。
我不明白为什么多线程之间也使用 Queue?
为什么没有定义一个全局变量保存页码?
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学,你好!定义一个全局变量(如列表)来保存页码存在一定的隐患,假如使用了全局变量page_list来保存页码,可能取页码的时候pop()函数执行到了一半,另一个线程同时执行pop(),或者另一个线程执行append()添加页码,这个时候page_list中的数据就会发生错误,导致程序终止或者得到不正确的结果。而Queue进行了很好的封装,在放值和取值的时候线程是安全的,不会出现如全局变量的隐患问题
祝学习愉快~~~
相似问题