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

2025-04-09 16:36:57
推荐回答(2个)
回答1:

主要原因要归结于:线程同步的问题;
你这个程序里面在主程序里面启动了两个线程,因为你的线程没有用synchronized修饰,不是线程同步的,所以你在执行两个线程的时候是哪个程序得到了cpu线程锁就会执行哪个程序。
当一个线程处于等待或者在执行中出现停顿的情况,那么cpu就会执行其他的线程。因为都是非同步的,所以两个线程会在各自执行换行的时候让另外一个线程得到执行的机会。所以会出现你看到的结果。

回答2:

先run run里面调用print