会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133625个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 19172楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/SQL 语言 19173楼

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 网络与并发编程/并发编程 19175楼
JAVA 全系列/(旧的隐藏)第十五阶段:百战商城项目(Spring Cloud最新架构)/百战商城项目 19177楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 19178楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 19179楼
Python 全系列/第十九阶段:数据分析-数据可视化/matplotlib 19181楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 19182楼

public static int handleLate(int LateMinute,int monthSalary){
    int fakuan = 0;                                          ............2
    int daySalary = (int)(monthSalary/22.5);                 ............3
    System.out.println("迟到分钟数:"+LateMinute);            ............4
    System.out,println("月薪:"+monthSalary);                 ............5
    
    if(LateMinute<=30){                                      
        System.out.println("罚款200元");                     
        fakuan = 200; ...................................................8
    }else{                                                   
        System.out.println("扣除1日工资");                   
        fakuan  = daySalary; ............................................11
    }                                                        
    return fakuan;

老师,三个问题:

1、调用这个方法的时候只需要输入LateMinute和monthSalary,后面会自动判断然后输出罚款多少元,那为什么第二行还要设定一个fakuan=0,后面第8行第11行还要给fakuan赋值?整个方法里没有输出fakuan值啊

2、return的作用是返回值和结束方法的运行。返回值具体的意思是?

3、return结束方法,后面为什么是跟着fakuan?这个方法里fakuan和daySalary都是一开始声明的值,为什么是return fakuan而是return daySalary?怎么判断return后面跟什么?

JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 19184楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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