第1关 线程的状态与调度
第2关 常用函数(一)
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();
//请在此添加实现代码
Thread t = new MyThread(num);
t.start();
}
}
//请在此添加实现代码
class MyThread extends Thread {
private int num;
public MyThread(int num){
this.num = num;
}
public void run () {
int a = 1 , b = 1 , sum = 1;
for(int i = 1 ; i < num-1 ; i++){
sum = a + b ;
b = a;
a = sum;
}
System.out.println("子线程计算结果为:"+sum);
}
}
第3关 常用函数(二)
package step3;
public class MyThread implements Runnable {
//请在此添加实现代码
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 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);
}
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);
}
}



