注意啦!!!!这期的复制又恢复正常了
第一题
有三种原因可以导致线程不能运行,它们是( )
A、等待
B、阻塞
C、休眠
D、挂起及由于I/O操作而阻塞
Java语言中提供了一个( )线程,自动回收动态分配的内存。
A、异步
B、消费者
C、守护
D、垃圾收集
当( )方法终止时,能使线程进入死亡状态
A、run
B、setPrority
C、yield
D、sleep
用( )方法可以改变线程的优先级。
A、run
B、setPrority
C、yield
D、sleep
线程通过( )方法可以休眠一段时间,然后恢复运行
A、run
B、setPrority
C、yield
D、sleep
下列关于线程的说法正确的是( )
A、如果线程死亡,它便不能运行
B、在Java中,高优先级的可运行线程会抢占低优先级线程
C、线程可以用yield方法使低优先级的线程运行
D、一个线程可以调用yield方法使其他线程有机会运行
1、ABC
2、D
3、A
4、B
5、D
6、ABD
第二题
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
创建自定义线程,实现求第num项斐波那契数列的值num从0开始,并且在main函数中获取子线程最终计算的结果。
package step2;
import java.util.Scanner;
public class Task {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//请在此添加实现代码
/********** Begin **********/
Thread t=new MyThread("子线程",num);
t.start();
/********** End **********/
}
}
//请在此添加实现代码
/********** Begin **********/
class MyThread extends Thread {
private int num;
private String name;
public MyThread(String name,int num){
this.num=num;
this.name=name;
}
public void run(){
int[] arr=new int[2];
arr[0]=1;
arr[1]=1;
for(int i=2;i<num;i++){
int tmp=arr[1];
arr[1]=arr[0]+arr[1];
arr[0]=tmp;
}
System.out.println("子线程计算结果为:"+arr[1]);
}
}
/********** End **********/
第三题
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
建立三个线程,A线程打印5次E,B线程打印5次D,C线程打印5次U,要求线程同时运行,交替打印5次EDU。
package step3;
public class MyThread implements Runnable {
//请在此添加实现代码
/********** Begin **********/
private String name;
private Object prev;
private Object self;
private MyThread(String name,Object prev,Object self){
this.name = name;
this.prev = prev;
this.self = self;
}
public void run(){
int count = 5;
while(count>0){
synchronized(prev){
synchronized(self){
System.out.print(name);
count--;
self.notify();
}
try {
prev.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
System.exit(0);
}
public static void main(String[] args) throws Exception {
Object a = new Object();
Object b = new Object();
Object c = new Object();
MyThread ta = new MyThread("E",c,a);
MyThread tb = new MyThread("D",a,b);
MyThread tc = new MyThread("U",b,c);
new Thread(ta).start();
Thread.sleep(100);
new Thread(tb).start();
Thread.sleep(100);
new Thread(tc).start();
Thread.sleep(100);
}
/********** End **********/
}
我活在世上,
无非想要明白些道理,遇见些有趣的事,
倘能如我愿,我的一生就算成功。
交个朋友,随缘认识。
我是谁?
一个普通大学生
你可以收获什么?
内容不多,你想看什么?可以告诉我!