class Producer implements Runnable {
static int b;
public void run() {
for(int i=0; i<20; i++) {
Object wt = new Object(i);
ss.push(wt);
System.out.println("生产了:" + wt);
try {
Thread.sleep((int)(Math.random() * 200));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public synchronized void m1(){}
}
Producer p = new Producer();
new Thread(p).start();
new Thread(p).start();
new Thread(p).start();
与
Producer p1 = new Producer();
Producer p2 = new Producer();
Producer p3 = new Producer();
new Thread(p1).start();
new Thread(p2).start();
new Thread(p3).start();
同样启动三个线程,有什么区别呢?
一个是同一个对象的多个线程。
一个是多个对象的多个线程。
对于里面的同步方法是怎么执行的呢?对于Producer中的静态变量b又是怎么样同步的呢?希望得到解答呀。
|