J类
package thread4;
public class J {
private int j;
public synchronized int getJ() {
return j;
}
public synchronized void AddJ() {
this.j ++;
}
public synchronized void DecJ() {
this.j --;
}
}
加线程类
package thread4;
public class Add extends Thread{
private J j;
public Add(J j) {
super();
this.j = j;
}
@Override
public void run() {
for(int i=0;i<100;i++) {
j.AddJ();
System.out.println(Thread.currentThread().getName()+"将j+1后,j="+j.getJ());
}
}
}
减线程类
package thread4;
public class Dec extends Thread{
private J j;
public Dec(J j) {
super();
this.j = j;
}
@Override
public void run() {
for(int i=0;i<100;i++) {
j.DecJ();;
System.out.println(Thread.currentThread().getName()+"将j-1后,j="+j.getJ());
}
}
}
测试类
package thread4;
public class Test {
public static void main(String[] args) {
J j=new J();
Add a1=new Add(j);
Add a2=new Add(j);
Dec d1=new Dec(j);
Dec d2=new Dec(j);
a1.setName("增线程1");
a2.setName("增线程2");
d1.setName("减线程1");
d2.setName("减线程2");
a1.start();
a2.start();
d1.start();
d2.start();
}
}
示例
增线程2将j+1后,j=2
减线程2将j-1后,j=0
减线程1将j-1后,j=0
增线程1将j+1后,j=2
减线程1将j-1后,j=-1
减线程2将j-1后,j=0
增线程2将j+1后,j=1
增线程2将j+1后,j=-1
增线程2将j+1后,j=0
增线程2将j+1后,j=1
增线程2将j+1后,j=2
增线程2将j+1后,j=3
增线程2将j+1后,j=4
增线程2将j+1后,j=5
增线程2将j+1后,j=6
增线程2将j+1后,j=7
增线程2将j+1后,j=8
增线程2将j+1后,j=9
减线程2将j-1后,j=-2
减线程1将j-1后,j=-1
增线程1将j+1后,j=0
减线程1将j-1后,j=8
减线程1将j-1后,j=8
减线程1将j-1后,j=7
减线程1将j-1后,j=6
减线程1将j-1后,j=5
减线程1将j-1后,j=4
减线程1将j-1后,j=3
减线程1将j-1后,j=2
减线程1将j-1后,j=1
减线程1将j-1后,j=0
减线程2将j-1后,j=9
增线程2将j+1后,j=10
减线程2将j-1后,j=-2
减线程2将j-1后,j=-2
减线程2将j-1后,j=-3
减线程2将j-1后,j=-4
减线程2将j-1后,j=-5
减线程2将j-1后,j=-6
减线程2将j-1后,j=-7
减线程2将j-1后,j=-8
减线程1将j-1后,j=-1
增线程1将j+1后,j=9
增线程1将j+1后,j=-8
增线程1将j+1后,j=-8
增线程1将j+1后,j=-7
增线程1将j+1后,j=-6
减线程2将j-1后,j=-9
减线程2将j-1后,j=-6
减线程2将j-1后,j=-7
减线程2将j-1后,j=-8
减线程2将j-1后,j=-9
减线程2将j-1后,j=-10
减线程2将j-1后,j=-11
减线程2将j-1后,j=-12
增线程2将j+1后,j=-1
减线程2将j-1后,j=-13
减线程2将j-1后,j=-13
减线程2将j-1后,j=-14
减线程2将j-1后,j=-15
减线程2将j-1后,j=-16
减线程2将j-1后,j=-17
减线程2将j-1后,j=-18
减线程1将j-1后,j=-5
减线程1将j-1后,j=-20
减线程1将j-1后,j=-21
减线程1将j-1后,j=-22
减线程1将j-1后,j=-23
增线程1将j+1后,j=-5
减线程1将j-1后,j=-24
减线程1将j-1后,j=-24
减线程1将j-1后,j=-25
减线程1将j-1后,j=-26
减线程1将j-1后,j=-27
减线程2将j-1后,j=-19
减线程2将j-1后,j=-29
减线程2将j-1后,j=-30
减线程2将j-1后,j=-31
减线程2将j-1后,j=-32
减线程2将j-1后,j=-33
减线程2将j-1后,j=-34
减线程2将j-1后,j=-35
减线程2将j-1后,j=-36
减线程2将j-1后,j=-37
减线程2将j-1后,j=-38
增线程2将j+1后,j=-12
增线程2将j+1后,j=-38
增线程2将j+1后,j=-37
增线程2将j+1后,j=-36
增线程2将j+1后,j=-35
增线程2将j+1后,j=-34
增线程2将j+1后,j=-33
增线程2将j+1后,j=-32
增线程2将j+1后,j=-31
增线程2将j+1后,j=-30
增线程2将j+1后,j=-29
增线程2将j+1后,j=-28
增线程2将j+1后,j=-27
增线程2将j+1后,j=-26
减线程2将j-1后,j=-39
减线程2将j-1后,j=-26
减线程2将j-1后,j=-27
减线程2将j-1后,j=-28
减线程1将j-1后,j=-28
减线程1将j-1后,j=-30
减线程1将j-1后,j=-31
减线程1将j-1后,j=-32
减线程1将j-1后,j=-33
减线程1将j-1后,j=-34
减线程1将j-1后,j=-35
减线程1将j-1后,j=-36
减线程1将j-1后,j=-37
减线程1将j-1后,j=-38
减线程1将j-1后,j=-39
减线程1将j-1后,j=-40
减线程1将j-1后,j=-41
减线程1将j-1后,j=-42
减线程1将j-1后,j=-43
减线程1将j-1后,j=-44
减线程1将j-1后,j=-45
减线程1将j-1后,j=-46
减线程1将j-1后,j=-47
减线程1将j-1后,j=-48
减线程1将j-1后,j=-49
减线程1将j-1后,j=-50
减线程1将j-1后,j=-51
减线程1将j-1后,j=-52
减线程1将j-1后,j=-53
减线程1将j-1后,j=-54
减线程1将j-1后,j=-55
减线程1将j-1后,j=-56
减线程1将j-1后,j=-57
减线程1将j-1后,j=-58
减线程1将j-1后,j=-59
减线程1将j-1后,j=-60
减线程1将j-1后,j=-61
减线程1将j-1后,j=-62
减线程1将j-1后,j=-63
减线程1将j-1后,j=-64
减线程1将j-1后,j=-65
减线程1将j-1后,j=-66
减线程1将j-1后,j=-67
减线程1将j-1后,j=-68
减线程1将j-1后,j=-69
减线程1将j-1后,j=-70
减线程1将j-1后,j=-71
增线程1将j+1后,j=-23
增线程1将j+1后,j=-71
增线程1将j+1后,j=-70
增线程1将j+1后,j=-69
增线程1将j+1后,j=-68
增线程1将j+1后,j=-67
增线程1将j+1后,j=-66
增线程1将j+1后,j=-65
增线程1将j+1后,j=-64
增线程1将j+1后,j=-63
增线程1将j+1后,j=-62
增线程1将j+1后,j=-61
增线程1将j+1后,j=-60
增线程1将j+1后,j=-59
增线程1将j+1后,j=-58
增线程1将j+1后,j=-57
增线程1将j+1后,j=-56
增线程1将j+1后,j=-55
增线程1将j+1后,j=-54
增线程1将j+1后,j=-53
增线程1将j+1后,j=-52
增线程1将j+1后,j=-51
增线程1将j+1后,j=-50
增线程1将j+1后,j=-49
增线程1将j+1后,j=-48
增线程1将j+1后,j=-47
增线程1将j+1后,j=-46
增线程1将j+1后,j=-45
增线程1将j+1后,j=-44
减线程1将j-1后,j=-72
减线程1将j-1后,j=-44
减线程1将j-1后,j=-45
减线程1将j-1后,j=-46
减线程2将j-1后,j=-29
减线程2将j-1后,j=-48
增线程2将j+1后,j=-25
减线程2将j-1后,j=-49
减线程2将j-1后,j=-49
减线程2将j-1后,j=-50
减线程2将j-1后,j=-51
减线程2将j-1后,j=-52
减线程2将j-1后,j=-53
减线程2将j-1后,j=-54
减线程2将j-1后,j=-55
减线程2将j-1后,j=-56
减线程2将j-1后,j=-57
减线程2将j-1后,j=-58
减线程2将j-1后,j=-59
减线程2将j-1后,j=-60
减线程2将j-1后,j=-61
减线程2将j-1后,j=-62
减线程2将j-1后,j=-63
减线程2将j-1后,j=-64
减线程2将j-1后,j=-65
减线程2将j-1后,j=-66
减线程2将j-1后,j=-67
减线程2将j-1后,j=-68
减线程2将j-1后,j=-69
减线程2将j-1后,j=-70
减线程2将j-1后,j=-71
减线程2将j-1后,j=-72
减线程2将j-1后,j=-73
减线程2将j-1后,j=-74
减线程2将j-1后,j=-75
减线程2将j-1后,j=-76
减线程2将j-1后,j=-77
减线程2将j-1后,j=-78
减线程2将j-1后,j=-79
减线程2将j-1后,j=-80
减线程2将j-1后,j=-81
减线程2将j-1后,j=-82
减线程2将j-1后,j=-83
减线程2将j-1后,j=-84
减线程2将j-1后,j=-85
减线程2将j-1后,j=-86
减线程2将j-1后,j=-87
减线程2将j-1后,j=-88
减线程2将j-1后,j=-89
减线程2将j-1后,j=-90
减线程2将j-1后,j=-91
减线程2将j-1后,j=-92
减线程2将j-1后,j=-93
减线程2将j-1后,j=-94
减线程2将j-1后,j=-95
减线程2将j-1后,j=-96
减线程2将j-1后,j=-97
减线程2将j-1后,j=-98
减线程2将j-1后,j=-99
减线程2将j-1后,j=-100
减线程2将j-1后,j=-101
减线程2将j-1后,j=-102
减线程2将j-1后,j=-103
减线程1将j-1后,j=-47
减线程1将j-1后,j=-104
减线程1将j-1后,j=-105
减线程1将j-1后,j=-106
减线程1将j-1后,j=-107
减线程1将j-1后,j=-108
减线程1将j-1后,j=-109
减线程1将j-1后,j=-110
减线程1将j-1后,j=-111
减线程1将j-1后,j=-112
减线程1将j-1后,j=-113
减线程1将j-1后,j=-114
减线程1将j-1后,j=-115
减线程1将j-1后,j=-116
减线程1将j-1后,j=-117
减线程1将j-1后,j=-118
减线程1将j-1后,j=-119
减线程1将j-1后,j=-120
减线程1将j-1后,j=-121
减线程1将j-1后,j=-122
减线程1将j-1后,j=-123
减线程1将j-1后,j=-124
减线程1将j-1后,j=-125
减线程1将j-1后,j=-126
减线程1将j-1后,j=-127
减线程1将j-1后,j=-128
减线程1将j-1后,j=-129
减线程1将j-1后,j=-130
减线程1将j-1后,j=-131
增线程1将j+1后,j=-43
增线程1将j+1后,j=-130
增线程1将j+1后,j=-129
增线程1将j+1后,j=-128
增线程1将j+1后,j=-127
增线程1将j+1后,j=-126
增线程1将j+1后,j=-125
增线程1将j+1后,j=-124
增线程1将j+1后,j=-123
增线程1将j+1后,j=-122
增线程1将j+1后,j=-121
增线程1将j+1后,j=-120
增线程1将j+1后,j=-119
增线程1将j+1后,j=-118
增线程1将j+1后,j=-117
增线程1将j+1后,j=-116
增线程1将j+1后,j=-115
增线程1将j+1后,j=-114
增线程1将j+1后,j=-113
增线程1将j+1后,j=-112
增线程1将j+1后,j=-111
增线程1将j+1后,j=-110
增线程1将j+1后,j=-109
增线程1将j+1后,j=-108
增线程1将j+1后,j=-107
增线程1将j+1后,j=-106
增线程1将j+1后,j=-105
增线程1将j+1后,j=-104
增线程1将j+1后,j=-103
增线程1将j+1后,j=-102
增线程1将j+1后,j=-101
增线程1将j+1后,j=-100
增线程1将j+1后,j=-99
增线程1将j+1后,j=-98
增线程1将j+1后,j=-97
增线程1将j+1后,j=-96
增线程1将j+1后,j=-95
增线程1将j+1后,j=-94
增线程1将j+1后,j=-93
增线程1将j+1后,j=-92
增线程1将j+1后,j=-91
增线程1将j+1后,j=-90
增线程1将j+1后,j=-89
增线程1将j+1后,j=-88
增线程1将j+1后,j=-87
增线程1将j+1后,j=-86
增线程1将j+1后,j=-85
增线程1将j+1后,j=-84
增线程1将j+1后,j=-83
增线程1将j+1后,j=-82
增线程1将j+1后,j=-81
增线程1将j+1后,j=-80
增线程1将j+1后,j=-79
增线程1将j+1后,j=-78
增线程1将j+1后,j=-77
增线程1将j+1后,j=-76
增线程1将j+1后,j=-75
增线程1将j+1后,j=-74
增线程1将j+1后,j=-73
增线程1将j+1后,j=-72
增线程1将j+1后,j=-71
增线程1将j+1后,j=-70
增线程1将j+1后,j=-69
增线程2将j+1后,j=-48
增线程2将j+1后,j=-68
增线程2将j+1后,j=-67
增线程2将j+1后,j=-66
增线程2将j+1后,j=-65
增线程2将j+1后,j=-64
增线程2将j+1后,j=-63
增线程2将j+1后,j=-62
增线程2将j+1后,j=-61
增线程2将j+1后,j=-60
增线程2将j+1后,j=-59
增线程2将j+1后,j=-58
增线程2将j+1后,j=-57
增线程2将j+1后,j=-56
增线程2将j+1后,j=-55
增线程2将j+1后,j=-54
增线程2将j+1后,j=-53
增线程2将j+1后,j=-52
增线程2将j+1后,j=-51
增线程2将j+1后,j=-50
增线程2将j+1后,j=-49
增线程2将j+1后,j=-48
增线程2将j+1后,j=-47
增线程2将j+1后,j=-46
增线程2将j+1后,j=-45
增线程2将j+1后,j=-44
增线程2将j+1后,j=-43
增线程2将j+1后,j=-42
增线程2将j+1后,j=-41
增线程2将j+1后,j=-40
增线程2将j+1后,j=-39
增线程2将j+1后,j=-38
增线程2将j+1后,j=-37
增线程2将j+1后,j=-36
增线程2将j+1后,j=-35
增线程2将j+1后,j=-34
增线程2将j+1后,j=-33
增线程2将j+1后,j=-32
增线程2将j+1后,j=-31
增线程2将j+1后,j=-30
增线程2将j+1后,j=-29
增线程2将j+1后,j=-28
增线程2将j+1后,j=-27
增线程2将j+1后,j=-26
增线程2将j+1后,j=-25
增线程2将j+1后,j=-24
增线程2将j+1后,j=-23
增线程2将j+1后,j=-22
增线程2将j+1后,j=-21
增线程2将j+1后,j=-20
增线程2将j+1后,j=-19
增线程2将j+1后,j=-18
增线程2将j+1后,j=-17
增线程2将j+1后,j=-16
增线程2将j+1后,j=-15
增线程2将j+1后,j=-14
增线程2将j+1后,j=-13
增线程2将j+1后,j=-12
增线程2将j+1后,j=-11
增线程2将j+1后,j=-10
增线程2将j+1后,j=-9
增线程2将j+1后,j=-8
增线程2将j+1后,j=-7
增线程2将j+1后,j=-6
增线程2将j+1后,j=-5
增线程2将j+1后,j=-4
增线程2将j+1后,j=-3
增线程2将j+1后,j=-2
增线程2将j+1后,j=-1
增线程2将j+1后,j=0