假设生产数据如下:
·第一组数据:title=蜡笔小新,content=好学生;
·第二组数据:title=小白,content=好狗狗;
范例:
class Info {
private String title;
private String content;
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public void setContent(String content) {
this.content = content;
}
public String getContent() {
return content;
}
}
class Productor implements Runnable {// 生产者类
private Info info;
public Productor(Info info) {
this.info = info;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {// 偶数
this.info.setTitle("蜡笔小新");
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
this.info.setContent("好学生");
} else {
this.info.setTitle("小白");
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
this.info.setContent("好狗狗");
}
}
}
}
class Customer implements Runnable {
private Info info;
public Customer(Info info) {
this.info = info;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(this.info.getTitle() + "->" + this.info.getContent());
}
}
}
public class Demo {
public static void main(String[] args) {
Info info = new Info();
new Thread(new Productor(info)).start();
new Thread(new Customer(info)).start();
}
}
出现问题:
·数据错位
·数据重复取出