以下 JAVA 代码片段输出的结果是__?

class KaiJuan implements Runnable
{
    Public static void main(String[ ] args)throws interruptedException
    {
        Thread t = new Thread(new KaiJuan());
        t.start( );
        System.out.print("m1");
        t.join( );
        System.out.print("m2");
    }

    public void run( )
    {
        System.out.print("r1");
        System.out.print("r2");
    }
}
1365 次浏览
  • A、程序输出结果是m1 r1 r2 m2
  • B、程序输出结果是m1 r1 m2 r2
  • C、程序输出结果是m1 m2 r1 r2
  • D、程序输出结果是r1 r2 m1 m2
一个线程可以拥有就绪 (可运行) 状态、运行状态和阻塞状态。在该题中,JVM 以 main() 方法为切入点,产生主线程 m。接着new了一个线程 t 并调用start()方法启动线程,使得线程t进入可运行状态,等待被执行。需要注意的是,此时的线程 t 只是可运行状态,而不是运行状态,此时会继续执行第一个打印语句,打印出 m1。接着t.join() 方法使得主线程m等待子线程t运行完毕之后再继续运行。因此,线程t 进入运行状态,执行run() 方法,顺序打印出 r1 r2。当线程 t 执行完毕后,执行最后一个打印语句,打印出 m2。
挑战成功
1年前
挑战成功
2年前
挑战失败
2年前
挑战失败
2年前
挑战失败
2年前
挑战成功
3年前
XNP
挑战成功
3年前
挑战成功
3年前
挑战成功
3年前
挑战失败
3年前

微信公众号

有课学公众号
  • 微信公众号: geekdaxue