编写一个类,包含一个整数操作对象
public class ChangeNumber {
private int j = 100;
public synchronized void add() {
j++;
System.out.println(Thread.currentThread().getName() + "线程中j增加了1,现在j=" + j);
}
public synchronized void del() {
j--;
System.out.println(Thread.currentThread().getName() + "线程中j减少了1,现在j=" + j);
}
}
测试类
public class TestChangeNumber{
public static void main(String[] args) {
ChangeNumber c = new ChangeNumber();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
c.add();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
c.add();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Thread t3 = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
c.del();
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Thread t4 = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
c.del();
try {
Thread.sleep(800);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t1.start();
t2.start();
t3.start();
t4.start();
}
}
Thread-0线程中j增加了1,现在j=101
Thread-3线程中j减少了1,现在j=100
Thread-2线程中j减少了1,现在j=99
Thread-1线程中j增加了1,现在j=100
Thread-2线程中j减少了1,现在j=99
Thread-0线程中j增加了1,现在j=100
Thread-2线程中j减少了1,现在j=99
Thread-3线程中j减少了1,现在j=98
Thread-2线程中j减少了1,现在j=97
Thread-1线程中j增加了1,现在j=98
Thread-0线程中j增加了1,现在j=99
Thread-2线程中j减少了1,现在j=98
Thread-0线程中j增加了1,现在j=99
Thread-2线程中j减少了1,现在j=98
Thread-3线程中j减少了1,现在j=97
Thread-2线程中j减少了1,现在j=96
Thread-1线程中j增加了1,现在j=97
Thread-0线程中j增加了1,现在j=98
Thread-2线程中j减少了1,现在j=97
Thread-3线程中j减少了1,现在j=96
Thread-2线程中j减少了1,现在j=95
Thread-0线程中j增加了1,现在j=96
Thread-2线程中j减少了1,现在j=95
Thread-1线程中j增加了1,现在j=96
Thread-0线程中j增加了1,现在j=97
Thread-2线程中j减少了1,现在j=96
Thread-3线程中j减少了1,现在j=95
Thread-2线程中j减少了1,现在j=94
Thread-0线程中j增加了1,现在j=95
Thread-2线程中j减少了1,现在j=94
Thread-2线程中j减少了1,现在j=93
Thread-3线程中j减少了1,现在j=92
Thread-1线程中j增加了1,现在j=93
Thread-0线程中j增加了1,现在j=94
Thread-2线程中j减少了1,现在j=93
Thread-0线程中j增加了1,现在j=94
Thread-2线程中j减少了1,现在j=93
Thread-3线程中j减少了1,现在j=92
Thread-2线程中j减少了1,现在j=91
Thread-1线程中j增加了1,现在j=92
Thread-0线程中j增加了1,现在j=93
Thread-2线程中j减少了1,现在j=92
Thread-2线程中j减少了1,现在j=91
Thread-0线程中j增加了1,现在j=92
Thread-3线程中j减少了1,现在j=91
Thread-2线程中j减少了1,现在j=90
Thread-1线程中j增加了1,现在j=91
Thread-0线程中j增加了1,现在j=92
Thread-2线程中j减少了1,现在j=91
Thread-2线程中j减少了1,现在j=90
Thread-3线程中j减少了1,现在j=89
Thread-0线程中j增加了1,现在j=90
Thread-2线程中j减少了1,现在j=89
Thread-2线程中j减少了1,现在j=88
Thread-1线程中j增加了1,现在j=89
Thread-0线程中j增加了1,现在j=90
Thread-3线程中j减少了1,现在j=89
Thread-2线程中j减少了1,现在j=88
Thread-0线程中j增加了1,现在j=89
Thread-2线程中j减少了1,现在j=88
Thread-2线程中j减少了1,现在j=87