关于join函数

关于join函数

http://img1.sycdn.imooc.com//climg/5ec5027f0911176a05441220.jpg

老师您好,我将t_write.join()和t_read.join()  这两句话都注释掉了,为什么结果只显示写的部分不展示读的部分呢?

按理说WriteProcess和ReadProcess都是子线程呀,不存在主线程挂起等子线程完成后才行动的状况吧?

麻烦老师讲解一下

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕笑蓉 2020-05-20 18:54:26

同学,你好。这和线程的执行速度有关,当读的线程还没有读取到数据的时候,就执行了t_read.terminate()操作,所以读不到数据,如在执行t_read.terminate()操作前,先等待2秒,就会有读的数据了。

http://img1.sycdn.imooc.com//climg/5ec50b9109abf2cc07180625.jpg

如果解决了你的疑惑,请采纳,祝学习愉快~ 

好帮手慕笑蓉 2020-05-20 18:35:50

同学,你好。由于t_write.join()和t_read.join() 两句代码都注释掉了,所以读和写线程开启后,就会执行t_read.terminate()代码,把读的线程关闭了,此时只有写的进程在执行,因此结果只显示写的部分不展示读的部分。

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • 但是老师,按照主线程的顺序,t_read.start执行之后才是t_read.terminate呀
    2020-05-20 18:42:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师