问题一:实现两个线程对共享资源实现累加操作,并且不同的休眠时间,实现轮流打印。
public class myThread_01 {
public static volatile double x1 = 0;
public static void main(String[] args) {
double x = 0;
MyThread1 myThread1 = new MyThread1(300);
MyThread1 myThread2 = new MyThread1(400);
Thread t1 = new Thread(myThread1);
Thread t2 = new Thread(myThread2);
t1.start();
t2.start();
}
}
class MyThread1 implements Runnable {
private long millis = 300;
public MyThread1(long millis) {
super();
this.millis = millis;
}
@Override
public void run() {
try {
while(true){
synchronized (myThread_01.class) {
long before = System.currentTimeMillis();
Thread.sleep(millis);
long after = System.currentTimeMillis();
System.out.println("消耗时间:"+String.valueOf(after-before));
myThread_01.x1++;
System.out.println(Thread.currentThread().getName()+"->x1:"+myThread_01.x1);
myThread_01.class.notify();
myThread_01.class.wait();
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}