对于线程的生命周期,下面四种说法正确的有哪些?()
A、调用了线程的start()方法,该线程就进入运行状态 (就绪,还要获得CPU使用权)
B、线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态
C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它
D、线程进入死亡状态后,调用它的start()方法仍然可以重新启动
A、调用了线程的start()方法,该线程就进入运行状态 (就绪,还要获得CPU使用权)
B、线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态
C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它
D、线程进入死亡状态后,调用它的start()方法仍然可以重新启动
A、适合多个相同程序代码的线程去处理同一个资源的情况 B、把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想 C、可以避免由于Java的单继承带来的局限性 D、编写简单,可以不通过Thread类直接创建线程
A、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法 B、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法 C、定义一个实现Runnable 接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法 D、定义一个实现Runnable 接口的类并实现run()方法,创建该类对象,然后调用run()方法
A、wait()方法的调用者是同步锁对象 B、wait()方法使线程进入等待状态 C、调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程 D、调用wait()方法的线程会释放同步锁对象