关于线程的创建过程,下面四种说法正确的有哪些?(多选)
A. 定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法
B. 定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法
C. 定义一个实现Runnable接口的类并实现run()方法,创建该类实例对,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法
D. 定义一个实现Runnable接口的类并实现run()方法,创建该类对象,然后调用run()方法
查看答案
下面四个选项中,哪些是线程进入阻塞或者等待状态的原因?(多选)
A. 线程试图获取某个对象的同步锁,而该锁被其它线程持有
B. 线程调用了另一个线程的join()方法
C. 当线程调用了一个阻塞式的IO方法
D. 线程调用了setDaemon(boolean b)方法
Java在Object类中提供了哪些方法用于解决线程间的通信问题。
A. wait()
B. notify()
C. notifyAll()
D. toString()
在实现多线程的程序时有三种方式,一是通过继______承类,二是通过实现______接口,三是实现______接口,重写call()方法。
在Thread类中,提供了一个start()方法,该方法用于开启一个新线程,当新线程启动后,系统会自动调用______方法。