会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132450个问题
JAVA 全系列/第六阶段:项目管理与SSM框架/Spring 19113楼
Python 全系列/第十三阶段:高并发性能怪兽-Tornado 框架/Tornado项目 19114楼
JAVA 全系列/第十一阶段:智能家居项目(旧)/至尊智能家居第二天 19115楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 19121楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 19122楼

from threading import Thread
import time

class MyThread(Thread):

    def __init__(self, name) -> None:
        Thread.__init__(self)
        self.name = name
   
    def run(self):
        print(f"线程{self.name} start")

        print(time.time())
        for i in range(100):
            print(f"线程{self.name}:",i)
        time.sleep(3)
        print(time.time())

        print(f"线程{self.name} end ")

if __name__ == "__main__":
    print("主线程 start")

    # 创建线程
    t1 = MyThread("t1")
    t2 = MyThread("t2")
    # 守护线程 daemon
    t1.daemon = True
    t2.daemon = True
    # 启动线程
    t1.start()
    t2.start()
    # join()方法 等待子线程结束后再结束主线程
    # t1.join()
    # t2.join()

    print("主线程 end")

image.png

老师,这个代码我有几个问题:

1、主线程执行完毕和主线程结束不是一回事儿的话,主线程怎么样才算结束,是执行完毕后会有一个缓冲时间,去告诉系统,我执行完毕了,可以结束了吗?

2、这里执行结束后有这个报错,是我的代码问题吗,我和课上代码对比了没有发现代码哪里有问题呀;

3、这段代码里,我用time.time()方法试了一下,sleep函数貌似失效了,没有等待时间,是直接输出的,但是我不写在线程里,单独写一个测试sleep的代码的话是能正常使用的,这是什么原因。

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 19124楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637