Explorer___
PYTHON Practicer
采纳率100%
2021-03-13 22:47

有关使用queue.Queue和多线程的问题

已采纳

为什么这个这个程序运行后手动结束,打开文件发现什么都没有写入

import queue
import threading
def test_function(a,b):
    while True:
        p = a.get()
        print(p)
        b.write('测试内容{}\n'.format(p))
cons=queue.Queue()
b=open('test.txt','w',encoding='utf-8')
for i in range(10):
    cons.put(i)
for i in range(2):
    t=threading.Thread(target=test_function,args=(cons,b),name='测试线程{}'.format(i))
    print(f'开始线程{i}')
    t.start()

运行结果如下:

开始线程0
0开始线程1

1
2
3
45

6
7
8
9

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • weixin_43912450 Clement 木易 2月前

    改成 open('test.txt','a+',encoding='utf-8') 最后close下

    点赞 评论 复制链接分享
  • Explorer___ PYTHON Practicer 2月前

    十分感谢,确实可以写入了

    点赞 评论 复制链接分享

相关推荐