PYTHON Practicer
2021-03-13 22:47
采纳率: 100%
浏览 22
已采纳

有关使用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条回答 默认 最新

  • Clement 木易 2021-03-13 22:53
    最佳回答

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

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题