目标:定义一个Producer类创建Student并添加到studnts集合中,再定义一个Consumer类从studnts集合中取出数据并打印控制台。Producer,Consumer类都实现了Runnable接口。在MainTest类的main方法中创建线程并启动,如下所示: Producer p = new Producer(); Thread tp1 = new Thread(p); tp1.start(); Consumer c = new Consumer(); Thread tc1 = new Thread(c); tc1.start();这个时候,当tc1线程要执行的时候就报java.util.ConcurrentModificationException错误,我本是对线程调用这一块儿不是太明白。请大侠们帮我解决一下儿,请告诉我问啥会出这样的问题。 具体类如下所示: Student类:一个普通类,其中定义了一个name属性和一个age属性。public class Student { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((age == null) ? 0 : age.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (age == null) { if (other.age != null) return false; } else if (!age.equals(other.age)) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } } Classroom接口:其中定义了一个名称为studnts的List用于存放Student对象。public interface Classroom { List<Student> studnts = new ArrayList<Student>();} State抽象类:其中定义了一个状态,想用这个对studnts集合的操作进行控制。public abstract class State { boolean state=true;}
添加回答
举报
0/150
提交
取消
