7
以下代码是声明实现 Runnable 接口的类,以创建新的线程并启动,在横线处填入哪些代码可以实现上述目标( ) ----- 单选
public class MyRunnable implements Runnable {
public void run() {
// do something…
}
}
public class MyRunnableTest {
public static void main(String[] args) {
____________________________________
}
}
A、 new MyRunnable().run();
B、new MyRunnable().start();
C、 new Thread(new MyRunnable()).run();
D、 new Thread(new MyRunnable()).start();
4
下列说法中错误的一项是( ) ----- 单选 d
A、一个线程是一个Thread类的实例
B、线程由Runnable实例的run()方法开始执行
C、如果已经继承了一个父类那么可以通过实现Runnable接口来创建线程
D、新建的线程调用start()方法就能立即进入运行状态
5
以下关于yield()方法,说法正确的是( ) ----- 单选 b
A、该方法会暂停其他的线程,直到当前线程执行终止。
B、该方法会暂停当前正在执行的线程,并执行其他线程。
C、该方法会让出CPU的执行权,并且会完全按我们的预期效果运行。
D、该方法会造成线程死亡,不再继续执行。
6
下列关于多线程并行和并发的说法不正确的是( ) ----- 单选 a
A、并行和并发没有区别,都是指同时执行多个任务。
B、并行是多个任务同时运行,例如甲任务进行的同时,乙任务也在进行。
C、并发是指多个任务都请求运行,而处理器只能按受一个任务,就把多个任务安排轮流进行,由于时间间隔较短,使人感觉多个任务都在运行。
D、并行需要多核CPU,而并发不需要。
7
以下代码是声明实现 Runnable 接口的类,以创建新的线程并启动,在横线处填入哪些代码可以实现上述目标( ) ----- 单选 d
public class MyRunnable implements Runnable {
public void run() {
// do something…
}
}
public class MyRunnableTest {
public static void main(String[] args) {
____________________________________
}
}
A、 new MyRunnable().run();
B、new MyRunnable().start();
C、 new Thread(new MyRunnable()).run();
D、 new Thread(new MyRunnable()).start();
8
下列说法中,错误的一项是( ) ----- 单选 b
A、对象锁在synchronized()语句执行完之后由持有它的线程返还
B、对象锁在synchronized()语句中出现异常时由持有它的线程返还
C、当持有锁的线程对象调用了wait()方法时,线程将释放其持有的锁
D、当持有锁的线程对象调用了构造方法时,线程将释放其持有的锁
9
下列关于死锁的阐述,错误的是( ) ----- 单选 b
A、死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。
B、死锁不会影响程序的执行,还可以完成执行任务。
C、死锁产生的原因是一个资源每次只能被一个进程使用,而进程因请求资源而阻塞时,对已获得的资源保持不放。
D、可以使用阻止循环等待条件,将系统中所有的资源设置标志位、排序,规定所有的进程申请资源必须以一定的顺序(升序或降序)做操作来避免死锁。