最近在研究多线程的时候,发现了一个队列
from queue import Queue
这个队列在多线程中是属于线程安全,但是使用过程中发现了这样的一个问题,那就是
from queue import Queue
def fun(que):
que.put(1)
def main():
q = Queue(3)
print(q.empty())
fun(q)
print(q.get())
if __name__ == '__main__':
main()
输出结果为:
这也就说明q队列一开始是空的,但是在fun函数却增加了一个值,感觉这就和我之前所理解局部变量不一样了,按理说fun中的改变应该是不影响main中的值才对。
def fun(b):
b = 9
print("在fun中a的值为"+str(b))
def main():
a = 3
print("在修改前a的值为"+str(a))
fun(a)
print("在修改后a的值为"+str(a))
if __name__ == '__main__':
main()
按照我之前的理解,局部变量应该是这样的东西才对