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();
MyThread t
= new MyThread(num
);
t
.start();
try{
t
.join();
}catch(Exception e
){
}
System
.out
.println("子线程计算结果为:" + t
.result
);
}
}
class MyThread extends Thread {
private int num
;
public MyThread(int num
){
this.num
= num
;
}
public int result
;
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
;
}
result
= arr
[1];
}
}
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 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();
}
}
李响Superb
认证博客专家
机器学习
TensorFlow
图像处理
成为一名优秀的算法工程师⬆️ ,目前还在读软件工程,AI攻防、算法和深度学习方向,微博同名❤️ :李响Superb,(记得关注,有问题微博私信!)我们一起努力呀!
转载请注明原文地址: https://mac.8miu.com/read-506521.html