在看某视频课时遇到一个问题:
此刻有店员(clerk)作为共享数据,有一个消费者(customer)与一个生产者(producer)充当两个线程,用以下的代码就可以解决两个对象共用共享数据的问题:
class Clerk{
}
class Producer extends Thread{
private Clerk clerk;
public Producer(Clerk clerk){
this.clerk=clerk;
}
}
class Consumer extends Thread{
private Clerk clerk;
public Consumer(Clerk clerk){
this.clerk=clerk;
}
}
public class ProductTest {
public static void main(String[] args) {
Clerk clerk=new Clerk();
Producer p1 = new Producer(clerk);
p1.setName("生产者");
Consumer c1 = new Consumer(clerk);
c1.setName("消费者");
p1.start();
c1.start();
}
}
请问这是什么原理...思考了半天没有搞懂...
java对象是应用传递,你可以看做此时对象是单例的,再怎么操作都是操作同一个对象。