public class TestThread {
private int j;
public static void main(String[] args) {
TestThread t = new TestThread();
Inc inc = t.new Inc();
Dec dec = t.new Dec();
for(int i=0;i<2;i++){
Thread thread = new Thread(inc);
thread.start();
thread = new Thread(dec);
thread.start();
}
}
private synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
}
private synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
}
//内部类
class Inc implements Runnable {
public void run() {
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec implements Runnable {
public void run() {
for(int i=0;i<100;i++){
dec();
}
}
}}代码如上,我想问一下“private synchronized void inc()”这里的synchronized锁住的是inc这个内部类对象,还是调用这个内部类的TestThread类的t对象?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货