java线程类中这两个方法的执行顺序?是执行完print再执行run吗?为什么输出结果是ababa

java线程类中这两个方法的执行顺序?是执行完print再执行run吗?为什么输出结果是ababab……交替输出... java线程类中这两个方法的执行顺序?是执行完print再执行run吗?为什么输出结果是ababab……交替输出 展开
 我来答
润泽且素淡灬瑰宝h
2015-04-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3561
采纳率:3%
帮助的人:1854万
展开全部
主要原因要归结于:线程同步的问题;
你这个程序里面在主程序里面启动了两个线程,因为你的线程没有用synchronized修饰,不是线程同步的,所以你在执行两个线程的时候是哪个程序得到了cpu线程锁就会执行哪个程序。
当一个线程处于等待或者在执行中出现停顿的情况,那么cpu就会执行其他的线程。因为都是非同步的,所以两个线程会在各自执行换行的时候让另外一个线程得到执行的机会。所以会出现你看到的结果。
更多追问追答
追问
为什么在执行换行的时候才会让另一个线程时得到执行的机会呢
追答
这个就cpu处理数据的占空比问题。CPU的处理速度很高,它的每一个时刻点都分处理数据和空闲状态两种,只要某一个时针处于空闲状态,其他线程就会得到执行的机会。
百度网友e080e88db90
2015-04-16 · TA获得超过833个赞
知道小有建树答主
回答量:1946
采纳率:74%
帮助的人:408万
展开全部
先run run里面调用print
追答
t  t1两个对象交替调用
追问
为啥会交替呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式