对于线程的生命周期,下面四种说法正确的有哪些?
A. 调用了线程的start()方法,该线程就进入运行状态
B. 线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态
C. 线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它
D. 线程进入死亡状态后,调用它的start()方法仍然可以重新启动
下面四个选项中,哪些是线程进入阻塞或者等待状态的原因?
A. 线程试图获取某个对象的同步锁,而该锁被其它线程持有
B. 线程调用了另一个线程的join()方法
C. 当线程调用了一个阻塞式的IO方法
D. 线程调用了setDaemon(boolean b)方法
实现多线程有三种方式,一是通过继______承类,二是通过实现______接口,三是通过实现______接口。
在Java语言中,同步方法需要用到关键字______,对于同步方法而言无需指定同步锁,它的同步锁是方法所在的对象,也就是______(关键字)。