同步
同步的问题
当给狗狗食物的同时,狗狗又在吃,这会导致在运行过程中会出现食物的数据的错乱,有时候会多出数据,有时候会少出数据,这就让狗狗有时候会很吃亏,那么该如何解决呢?
实验体现
package multiThread2;public class Animal{private String name;private int year;Animal(){}private int food;public Animal(String name,int year,int food){this.name = name;this.year = year;this.food = food;}@Overridepublic String toString() {return "姓名:"+ name + ",年龄:" + year + ",来干饭了,还剩"+ food + "个食物";}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}public int getFood() {return food;}public void setFood(int food) {this.food = food;}public void eatFood(){this.food--;}public void addFood(){this.food++;}
}
package multiThread2;public class main {public static void main(String[] args) throws InterruptedException {Animal a2 = new Animal("旺财",3,200);System.out.println(a2.getName()+"原本的食物有"+a2.getFood());Thread[]