多个进程访问同一个资源并进行读写操作的时候,资源在改变多个线程中同时操作,会造成冲突。
如:
package edu.xalead;
public class 吃包子的 extends Thread {
private 包子笼 p = null;
private String name;
public 吃包子的(包子笼 p, String name) {
this.p = p;
this.name = name;
}
//重写Thread里面的run方法(反复吃包子)
public void run() {
while (true) {
if (this.p.packNum <= 0) {//只要包子笼里面还有包子就继续吃,否则就退出
break;
} else {
System.out.println(this.name + "吃第" + this.p.packNum + "个包子");
this.p.packNum--;
}
}
}
}
public class 包子笼 {
public int packNum = 100;
}
public class 测试吃包子 {
public static void main(String[] args) {
包子笼 p = new 包子笼();
吃包子的 e = new 吃包子的(p,"小常");
吃包子的 e1 = new 吃包子的(p,"小方");
e.start();