题目1
设置4个线程对象,其中两个实现自减操作,两个实现自增操作
知识点,1.可以利用volatile实现直接对内存操作无需数据备份。2.可以利用synchronized实现同步防止线程出现数据混乱问题。3.通过join函数实现线程之间阻塞保证线程的执行顺序
package Test1401;
//线程自增
class Decrease implements Runnable {
private volatile int num = 100;
@Override
public void run() {
synchronized (this) {
while (num > 0) {
num--;
System.out.println(num);
}
}
}
}
//线程自减
class Increase implements Runnable {
private volatile int number = 0;
@Override
public void run() {
synchronized (this) {
while (number < 100) {
number++;
System.out.println(number);
}
}
}
}
public class javaDemo {
public static void main(String[] args) {
Decrease d1 = new Decrease();
Decrease d2 = new Decrease();
Increase i1 = new Increase();
Increase i2 = new Increase();
Thread Thread1 = new Thread(d1);
Thread Thread2 = new Thread(d2);
Thread Thread3 = new Thread(i1);
Thread Thread4 = new Thread(i2);
// 线程启动
Thread1.start();
Thread2.start();
Thread3.start();
Thread4.start();
// 线程阻塞队列
try {
Thread1.join();