求解这串代码执行过程

为什么先输出STARTED,而不是先执行start开始的线程函数

图片说明

首先t.start()肯定是在"Started”前执行,但是应为run函数在子线程中,所以run函数里的代码理论上是和“Started”一起执行的,谁先谁后都不好说!

这个涉及到线程调度问题
main现在因为正在被cpu执行,而你start开启的foo线程只是进入线程队列等待
调度,就算进入队列就进行调度,时间一般有没有main的往下执行快。
你可以在线程开启的时候让main线程等待一毫秒,那么,就给cpu留下足够的时间来
执行你的新线程

希望能够帮到你...