Java 多线程中的同步块
我有一个方法调用方法的2Java 多线程中的同步块,java,multithreading,Java,Multithreading,我有一个方法调用方法的2synchronize块,并提供了代码 private static int count1 = 0; private static int count2 = 0; public synchronized static void add() { count1++; System.out.println("T name: " + Thread.currentThread().getName() + "count1 = " +
synchronize
块,并提供了代码
private static int count1 = 0;
private static int count2 = 0;
public synchronized static void add() {
count1++;
System.out.println("T name: " + Thread.currentThread().getName()
+ "count1 = " + count1);
}
public synchronized static void addAgain() {
count2++;
System.out.println("T name: " + Thread.currentThread().getName()
+ "count1 = " + count2);
}
public static void compute() {
for(int i=0;i<100;++i) {
add();
addAgain();
}
}
根据提供的代码,我有三个问题:
compute
方法时,它是否能够访问内部的两个synchronized
方法并执行增量操作 Thread name: Thread-0 count1 value = 1
Thread name: Thread-1 count1 value = 2
Thread name: Thread-1 count2 value = 1
Thread name: Thread-1 count1 value = 3
Thread name: Thread-1 count2 value = 2
Thread name: Thread-1 count1 value = 4
Thread name: Thread-1 count2 value = 3
Thread name: Thread-1 count1 value = 5
Thread name: Thread-1 count2 value = 4
Thread name: Thread-1 count1 value = 6
Thread name: Thread-1 count2 value = 5
Thread name: Thread-1 count1 value = 7
Thread name: Thread-1 count2 value = 6
Thread name: Thread-1 count1 value = 8
Thread name: Thread-1 count2 value = 7
Thread name: Thread-1 count1 value = 9
Thread name: Thread-1 count2 value = 8
Thread name: Thread-1 count1 value = 10
Thread name: Thread-1 count2 value = 9
Thread name: Thread-1 count1 value = 11
Thread name: Thread-1 count2 value = 10
Thread name: Thread-1 count1 value = 12
Thread name: Thread-1 count2 value = 11
Thread name: Thread-1 count1 value = 13
Thread name: Thread-1 count2 value = 12
Thread name: Thread-1 count1 value = 14
Thread name: Thread-1 count2 value = 13
Thread name: Thread-1 count1 value = 15
Thread name: Thread-1 count2 value = 14
Thread name: Thread-1 count1 value = 16
Thread name: Thread-1 count2 value = 15
Thread name: Thread-1 count1 value = 17
Thread name: Thread-1 count2 value = 16
Thread name: Thread-1 count1 value = 18
Thread name: Thread-1 count2 value = 17
Thread name: Thread-1 count1 value = 19
Thread name: Thread-1 count2 value = 18
Thread name: Thread-1 count1 value = 20
Thread name: Thread-0 count2 value = 19
Thread name: Thread-0 count1 value = 21
Thread name: Thread-0 count2 value = 20
Thread name: Thread-0 count1 value = 22
Thread name: Thread-0 count2 value = 21
Thread name: Thread-0 count1 value = 23
Thread name: Thread-0 count2 value = 22
Thread name: Thread-0 count1 value = 24
Thread name: Thread-0 count2 value = 23
Thread name: Thread-0 count1 value = 25
Thread name: Thread-0 count2 value = 24
Thread name: Thread-0 count1 value = 26
Thread name: Thread-0 count2 value = 25
Thread name: Thread-0 count1 value = 27
Thread name: Thread-0 count2 value = 26
Thread name: Thread-0 count1 value = 28
Thread name: Thread-0 count2 value = 27
Thread name: Thread-0 count1 value = 29
Thread name: Thread-0 count2 value = 28
Thread name: Thread-0 count1 value = 30
Thread name: Thread-0 count2 value = 29
Thread name: Thread-0 count1 value = 31
Thread name: Thread-0 count2 value = 30
Thread name: Thread-0 count1 value = 32
Thread name: Thread-0 count2 value = 31
Thread name: Thread-0 count1 value = 33
Thread name: Thread-0 count2 value = 32
Thread name: Thread-0 count1 value = 34
Thread name: Thread-0 count2 value = 33
Thread name: Thread-0 count1 value = 35
Thread name: Thread-0 count2 value = 34
Thread name: Thread-0 count1 value = 36
Thread name: Thread-0 count2 value = 35
Thread name: Thread-0 count1 value = 37
Thread name: Thread-0 count2 value = 36
Thread name: Thread-0 count1 value = 38
Thread name: Thread-0 count2 value = 37
Thread name: Thread-0 count1 value = 39
Thread name: Thread-0 count2 value = 38
Thread name: Thread-0 count1 value = 40
Thread name: Thread-0 count2 value = 39
Thread name: Thread-0 count1 value = 41
Thread name: Thread-0 count2 value = 40
Thread name: Thread-0 count1 value = 42
Thread name: Thread-0 count2 value = 41
Thread name: Thread-0 count1 value = 43
Thread name: Thread-0 count2 value = 42
Thread name: Thread-0 count1 value = 44
Thread name: Thread-0 count2 value = 43
Thread name: Thread-0 count1 value = 45
Thread name: Thread-0 count2 value = 44
Thread name: Thread-0 count1 value = 46
Thread name: Thread-0 count2 value = 45
Thread name: Thread-0 count1 value = 47
Thread name: Thread-0 count2 value = 46
Thread name: Thread-0 count1 value = 48
Thread name: Thread-0 count2 value = 47
Thread name: Thread-0 count1 value = 49
Thread name: Thread-0 count2 value = 48
Thread name: Thread-0 count1 value = 50
Thread name: Thread-0 count2 value = 49
Thread name: Thread-0 count1 value = 51
Thread name: Thread-0 count2 value = 50
Thread name: Thread-0 count1 value = 52
Thread name: Thread-0 count2 value = 51
Thread name: Thread-0 count1 value = 53
Thread name: Thread-0 count2 value = 52
Thread name: Thread-0 count1 value = 54
Thread name: Thread-0 count2 value = 53
Thread name: Thread-0 count1 value = 55
Thread name: Thread-0 count2 value = 54
Thread name: Thread-0 count1 value = 56
Thread name: Thread-0 count2 value = 55
Thread name: Thread-0 count1 value = 57
Thread name: Thread-0 count2 value = 56
Thread name: Thread-0 count1 value = 58
Thread name: Thread-0 count2 value = 57
Thread name: Thread-0 count1 value = 59
Thread name: Thread-0 count2 value = 58
Thread name: Thread-0 count1 value = 60
Thread name: Thread-0 count2 value = 59
Thread name: Thread-0 count1 value = 61
Thread name: Thread-0 count2 value = 60
Thread name: Thread-0 count1 value = 62
Thread name: Thread-0 count2 value = 61
Thread name: Thread-0 count1 value = 63
Thread name: Thread-0 count2 value = 62
Thread name: Thread-0 count1 value = 64
Thread name: Thread-0 count2 value = 63
Thread name: Thread-0 count1 value = 65
Thread name: Thread-0 count2 value = 64
Thread name: Thread-0 count1 value = 66
Thread name: Thread-0 count2 value = 65
Thread name: Thread-0 count1 value = 67
Thread name: Thread-0 count2 value = 66
Thread name: Thread-0 count1 value = 68
Thread name: Thread-0 count2 value = 67
Thread name: Thread-0 count1 value = 69
Thread name: Thread-0 count2 value = 68
Thread name: Thread-0 count1 value = 70
Thread name: Thread-0 count2 value = 69
Thread name: Thread-0 count1 value = 71
Thread name: Thread-0 count2 value = 70
Thread name: Thread-0 count1 value = 72
Thread name: Thread-0 count2 value = 71
Thread name: Thread-0 count1 value = 73
Thread name: Thread-0 count2 value = 72
Thread name: Thread-0 count1 value = 74
Thread name: Thread-0 count2 value = 73
Thread name: Thread-0 count1 value = 75
Thread name: Thread-0 count2 value = 74
Thread name: Thread-0 count1 value = 76
Thread name: Thread-0 count2 value = 75
Thread name: Thread-0 count1 value = 77
Thread name: Thread-0 count2 value = 76
Thread name: Thread-0 count1 value = 78
Thread name: Thread-0 count2 value = 77
Thread name: Thread-0 count1 value = 79
Thread name: Thread-0 count2 value = 78
Thread name: Thread-0 count1 value = 80
Thread name: Thread-0 count2 value = 79
Thread name: Thread-0 count1 value = 81
Thread name: Thread-0 count2 value = 80
Thread name: Thread-0 count1 value = 82
Thread name: Thread-0 count2 value = 81
Thread name: Thread-0 count1 value = 83
Thread name: Thread-0 count2 value = 82
Thread name: Thread-0 count1 value = 84
Thread name: Thread-0 count2 value = 83
Thread name: Thread-0 count1 value = 85
Thread name: Thread-0 count2 value = 84
Thread name: Thread-0 count1 value = 86
Thread name: Thread-0 count2 value = 85
Thread name: Thread-0 count1 value = 87
Thread name: Thread-0 count2 value = 86
Thread name: Thread-0 count1 value = 88
Thread name: Thread-0 count2 value = 87
Thread name: Thread-0 count1 value = 89
Thread name: Thread-0 count2 value = 88
Thread name: Thread-0 count1 value = 90
Thread name: Thread-0 count2 value = 89
Thread name: Thread-0 count1 value = 91
Thread name: Thread-0 count2 value = 90
Thread name: Thread-0 count1 value = 92
Thread name: Thread-0 count2 value = 91
Thread name: Thread-0 count1 value = 93
Thread name: Thread-0 count2 value = 92
Thread name: Thread-0 count1 value = 94
Thread name: Thread-0 count2 value = 93
Thread name: Thread-0 count1 value = 95
Thread name: Thread-0 count2 value = 94
Thread name: Thread-0 count1 value = 96
Thread name: Thread-0 count2 value = 95
Thread name: Thread-0 count1 value = 97
Thread name: Thread-0 count2 value = 96
Thread name: Thread-0 count1 value = 98
Thread name: Thread-0 count2 value = 97
Thread name: Thread-0 count1 value = 99
Thread name: Thread-0 count2 value = 98
Thread name: Thread-0 count1 value = 100
Thread name: Thread-0 count2 value = 99
Thread name: Thread-0 count1 value = 101
Thread name: Thread-0 count2 value = 100
Thread name: Thread-0 count1 value = 102
Thread name: Thread-0 count2 value = 101
Thread name: Thread-0 count1 value = 103
Thread name: Thread-0 count2 value = 102
Thread name: Thread-0 count1 value = 104
Thread name: Thread-0 count2 value = 103
Thread name: Thread-0 count1 value = 105
Thread name: Thread-0 count2 value = 104
Thread name: Thread-0 count1 value = 106
Thread name: Thread-0 count2 value = 105
Thread name: Thread-0 count1 value = 107
Thread name: Thread-0 count2 value = 106
Thread name: Thread-0 count1 value = 108
Thread name: Thread-0 count2 value = 107
Thread name: Thread-0 count1 value = 109
Thread name: Thread-0 count2 value = 108
Thread name: Thread-0 count1 value = 110
Thread name: Thread-0 count2 value = 109
Thread name: Thread-0 count1 value = 111
Thread name: Thread-0 count2 value = 110
Thread name: Thread-0 count1 value = 112
Thread name: Thread-0 count2 value = 111
Thread name: Thread-0 count1 value = 113
Thread name: Thread-0 count2 value = 112
Thread name: Thread-0 count1 value = 114
Thread name: Thread-0 count2 value = 113
Thread name: Thread-0 count1 value = 115
Thread name: Thread-0 count2 value = 114
Thread name: Thread-0 count1 value = 116
Thread name: Thread-0 count2 value = 115
Thread name: Thread-0 count1 value = 117
Thread name: Thread-0 count2 value = 116
Thread name: Thread-0 count1 value = 118
Thread name: Thread-0 count2 value = 117
Thread name: Thread-0 count1 value = 119
Thread name: Thread-0 count2 value = 118
Thread name: Thread-1 count2 value = 119
Thread name: Thread-1 count1 value = 120
Thread name: Thread-1 count2 value = 120
Thread name: Thread-1 count1 value = 121
Thread name: Thread-1 count2 value = 121
Thread name: Thread-1 count1 value = 122
Thread name: Thread-1 count2 value = 122
Thread name: Thread-1 count1 value = 123
Thread name: Thread-1 count2 value = 123
Thread name: Thread-1 count1 value = 124
Thread name: Thread-1 count2 value = 124
Thread name: Thread-1 count1 value = 125
Thread name: Thread-1 count2 value = 125
Thread name: Thread-1 count1 value = 126
Thread name: Thread-1 count2 value = 126
Thread name: Thread-1 count1 value = 127
Thread name: Thread-1 count2 value = 127
Thread name: Thread-1 count1 value = 128
Thread name: Thread-1 count2 value = 128
Thread name: Thread-1 count1 value = 129
Thread name: Thread-1 count2 value = 129
Thread name: Thread-1 count1 value = 130
Thread name: Thread-1 count2 value = 130
Thread name: Thread-1 count1 value = 131
Thread name: Thread-1 count2 value = 131
Thread name: Thread-1 count1 value = 132
Thread name: Thread-1 count2 value = 132
Thread name: Thread-1 count1 value = 133
Thread name: Thread-1 count2 value = 133
Thread name: Thread-1 count1 value = 134
Thread name: Thread-1 count2 value = 134
Thread name: Thread-1 count1 value = 135
Thread name: Thread-1 count2 value = 135
Thread name: Thread-1 count1 value = 136
Thread name: Thread-1 count2 value = 136
Thread name: Thread-1 count1 value = 137
Thread name: Thread-1 count2 value = 137
Thread name: Thread-1 count1 value = 138
Thread name: Thread-1 count2 value = 138
Thread name: Thread-1 count1 value = 139
Thread name: Thread-1 count2 value = 139
Thread name: Thread-1 count1 value = 140
Thread name: Thread-1 count2 value = 140
Thread name: Thread-1 count1 value = 141
Thread name: Thread-1 count2 value = 141
Thread name: Thread-1 count1 value = 142
Thread name: Thread-1 count2 value = 142
Thread name: Thread-1 count1 value = 143
Thread name: Thread-1 count2 value = 143
Thread name: Thread-1 count1 value = 144
Thread name: Thread-1 count2 value = 144
Thread name: Thread-1 count1 value = 145
Thread name: Thread-1 count2 value = 145
Thread name: Thread-1 count1 value = 146
Thread name: Thread-1 count2 value = 146
Thread name: Thread-1 count1 value = 147
Thread name: Thread-1 count2 value = 147
Thread name: Thread-1 count1 value = 148
Thread name: Thread-1 count2 value = 148
Thread name: Thread-1 count1 value = 149
Thread name: Thread-1 count2 value = 149
Thread name: Thread-1 count1 value = 150
Thread name: Thread-1 count2 value = 150
Thread name: Thread-1 count1 value = 151
Thread name: Thread-1 count2 value = 151
Thread name: Thread-1 count1 value = 152
Thread name: Thread-1 count2 value = 152
Thread name: Thread-1 count1 value = 153
Thread name: Thread-1 count2 value = 153
Thread name: Thread-1 count1 value = 154
Thread name: Thread-1 count2 value = 154
Thread name: Thread-1 count1 value = 155
Thread name: Thread-1 count2 value = 155
Thread name: Thread-1 count1 value = 156
Thread name: Thread-1 count2 value = 156
Thread name: Thread-1 count1 value = 157
Thread name: Thread-1 count2 value = 157
Thread name: Thread-1 count1 value = 158
Thread name: Thread-1 count2 value = 158
Thread name: Thread-1 count1 value = 159
Thread name: Thread-1 count2 value = 159
Thread name: Thread-1 count1 value = 160
Thread name: Thread-1 count2 value = 160
Thread name: Thread-1 count1 value = 161
Thread name: Thread-1 count2 value = 161
Thread name: Thread-1 count1 value = 162
Thread name: Thread-1 count2 value = 162
Thread name: Thread-1 count1 value = 163
Thread name: Thread-1 count2 value = 163
Thread name: Thread-1 count1 value = 164
Thread name: Thread-1 count2 value = 164
Thread name: Thread-1 count1 value = 165
Thread name: Thread-1 count2 value = 165
Thread name: Thread-1 count1 value = 166
Thread name: Thread-1 count2 value = 166
Thread name: Thread-1 count1 value = 167
Thread name: Thread-1 count2 value = 167
Thread name: Thread-1 count1 value = 168
Thread name: Thread-1 count2 value = 168
Thread name: Thread-1 count1 value = 169
Thread name: Thread-1 count2 value = 169
Thread name: Thread-1 count1 value = 170
Thread name: Thread-1 count2 value = 170
Thread name: Thread-1 count1 value = 171
Thread name: Thread-1 count2 value = 171
Thread name: Thread-1 count1 value = 172
Thread name: Thread-1 count2 value = 172
Thread name: Thread-1 count1 value = 173
Thread name: Thread-1 count2 value = 173
Thread name: Thread-1 count1 value = 174
Thread name: Thread-1 count2 value = 174
Thread name: Thread-1 count1 value = 175
Thread name: Thread-1 count2 value = 175
Thread name: Thread-1 count1 value = 176
Thread name: Thread-1 count2 value = 176
Thread name: Thread-1 count1 value = 177
Thread name: Thread-1 count2 value = 177
Thread name: Thread-1 count1 value = 178
Thread name: Thread-1 count2 value = 178
Thread name: Thread-1 count1 value = 179
Thread name: Thread-1 count2 value = 179
Thread name: Thread-1 count1 value = 180
Thread name: Thread-1 count2 value = 180
Thread name: Thread-1 count1 value = 181
Thread name: Thread-1 count2 value = 181
Thread name: Thread-1 count1 value = 182
Thread name: Thread-1 count2 value = 182
Thread name: Thread-1 count1 value = 183
Thread name: Thread-1 count2 value = 183
Thread name: Thread-1 count1 value = 184
Thread name: Thread-1 count2 value = 184
Thread name: Thread-1 count1 value = 185
Thread name: Thread-1 count2 value = 185
Thread name: Thread-1 count1 value = 186
Thread name: Thread-1 count2 value = 186
Thread name: Thread-1 count1 value = 187
Thread name: Thread-1 count2 value = 187
Thread name: Thread-1 count1 value = 188
Thread name: Thread-1 count2 value = 188
Thread name: Thread-1 count1 value = 189
Thread name: Thread-1 count2 value = 189
Thread name: Thread-1 count1 value = 190
Thread name: Thread-1 count2 value = 190
Thread name: Thread-1 count1 value = 191
Thread name: Thread-1 count2 value = 191
Thread name: Thread-1 count1 value = 192
Thread name: Thread-1 count2 value = 192
Thread name: Thread-1 count1 value = 193
Thread name: Thread-1 count2 value = 193
Thread name: Thread-1 count1 value = 194
Thread name: Thread-1 count2 value = 194
Thread name: Thread-1 count1 value = 195
Thread name: Thread-1 count2 value = 195
Thread name: Thread-1 count1 value = 196
Thread name: Thread-1 count2 value = 196
Thread name: Thread-1 count1 value = 197
Thread name: Thread-1 count2 value = 197
Thread name: Thread-1 count1 value = 198
Thread name: Thread-1 count2 value = 198
Thread name: Thread-1 count1 value = 199
Thread name: Thread-1 count2 value = 199
Thread name: Thread-1 count1 value = 200
Thread name: Thread-1 count2 value = 200
Count1=200 Count2=200
因此,当一个线程确实获得了访问权限时,它会同时持有
同步的方法。当控制器从一个色拉切换到另一个色拉时,计数器值将被更新并重新记忆 将发生的情况是,两个线程都调用compute()
方法,进入for循环,并在第一次调用add()
时结束
其中一个在另一个之前,因此他将进入synchronized
方法。当他在方法中时,第二个线程可能会到达add()
调用。这是一个可能的问题,因为你不能说哪个线程在什么时间点在哪里。它是未定义的,JVM决定哪些线程可以在什么时间执行操作。但是我们假设第二个线程到达add()
调用,现在想要执行该方法。它不能这样做,因为它是同步的,并且另一个线程当前已经在调用它。因此线程进入等待状态。第一个线程完成了对add()
的调用。现在,第二个线程可能会输入add()
,执行调用,退出add()
,然后输入addreach()
。这将使第一个线程等待
这听起来可能令人困惑,而这正是我想要了解的:
你不能说哪个线程在什么时候调用什么方法。JVM可能会决定让第一个线程先执行这两个方法的100次调用,然后第二个线程再执行相同的调用。它可能决定他们称之为交替。现实可能介于两者之间。在另一个线程完成初始化之前,这两个线程中的一个甚至可能没有进入compute()
方法。你不知道。这一切都取决于您的系统、处理器数量、发生的代码和cpu优化、使用哪个算法调度器等等
一旦你做了多线程处理,当发生什么事情时,你就无能为力了。通过调用join
可以等待任务完成。但是有一种确定的方法可以保证在1ms、2ms或250ms内都会出现这种情况
所以你的问题是:
当一个线程调用compute方法时,它是否能够访问内部的两个同步方法并执行增量
手术
不,没有。通过调用add
它可以访问此方法。它不会自动访问第二种方法
如果一个线程获得了对for循环的访问权,那么它是完成for循环还是在与另一个线程共享之前离开for循环
你不能说。既不能保证完成循环,也不能保证在完成之前中断
如果是这样的话,我假设另一个线程处于等待阶段,没有做很多事情。这是正确的吗
如果一个线程试图访问一个已被另一个线程访问的synchronized
方法,那么它将处于等待状态。将发生的情况是,两个线程都调用compute()
方法,进入for循环,并在第一次调用add()
时结束
其中一个在另一个之前,因此他将进入synchronized
方法。当他在方法中时,第二个线程可能会到达add()
调用。这是一个可能的问题,因为你不能说哪个线程在什么时间点在哪里。它是未定义的,JVM决定哪些线程可以在什么时间执行操作。但是我们假设第二个线程到达add()
调用,现在想要执行该方法。它不能这样做,因为它是同步的,并且另一个线程当前已经在调用它。因此线程进入等待状态。第一个线程完成了对add()
的调用。现在,第二个线程可能会输入add()
,执行调用,退出add()
,然后输入addreach()
。这将使第一个线程等待
这听起来可能令人困惑,而这正是我想要了解的:
你不能说哪个线程在什么时候调用什么方法。JVM可能会决定让第一个线程先执行这两个方法的100次调用,然后第二个线程再执行相同的调用。它可能决定他们称之为交替。现实可能介于两者之间。在另一个线程完成初始化之前,这两个线程中的一个甚至可能没有进入compute()
方法。你不知道。这一切都取决于您的系统、处理器数量、发生的代码和cpu优化、使用哪个算法调度器等等
一旦你做了多线程处理,当发生什么事情时,你就无能为力了。通过调用join
可以等待任务完成。但是有一种确定的方法可以保证在1ms、2ms或250ms内都会出现这种情况
所以你的问题是:
当一个线程调用compute方法时,它是否能够访问内部的两个同步方法并执行增量
手术
不,没有。通过调用add
它可以访问此方法。它不会自动访问第二种方法
如果一根线
Thread name: Thread-0 count1 value = 1
Thread name: Thread-1 count1 value = 2
Thread name: Thread-1 count2 value = 1
Thread name: Thread-1 count1 value = 3
Thread name: Thread-1 count2 value = 2
Thread name: Thread-1 count1 value = 4
Thread name: Thread-1 count2 value = 3
Thread name: Thread-1 count1 value = 5
Thread name: Thread-1 count2 value = 4
Thread name: Thread-1 count1 value = 6
Thread name: Thread-1 count2 value = 5
Thread name: Thread-1 count1 value = 7
Thread name: Thread-1 count2 value = 6
Thread name: Thread-1 count1 value = 8
Thread name: Thread-1 count2 value = 7
Thread name: Thread-1 count1 value = 9
Thread name: Thread-1 count2 value = 8
Thread name: Thread-1 count1 value = 10
Thread name: Thread-1 count2 value = 9
Thread name: Thread-1 count1 value = 11
Thread name: Thread-1 count2 value = 10
Thread name: Thread-1 count1 value = 12
Thread name: Thread-1 count2 value = 11
Thread name: Thread-1 count1 value = 13
Thread name: Thread-1 count2 value = 12
Thread name: Thread-1 count1 value = 14
Thread name: Thread-1 count2 value = 13
Thread name: Thread-1 count1 value = 15
Thread name: Thread-1 count2 value = 14
Thread name: Thread-1 count1 value = 16
Thread name: Thread-1 count2 value = 15
Thread name: Thread-1 count1 value = 17
Thread name: Thread-1 count2 value = 16
Thread name: Thread-1 count1 value = 18
Thread name: Thread-1 count2 value = 17
Thread name: Thread-1 count1 value = 19
Thread name: Thread-1 count2 value = 18
Thread name: Thread-1 count1 value = 20
Thread name: Thread-0 count2 value = 19
Thread name: Thread-0 count1 value = 21
Thread name: Thread-0 count2 value = 20
Thread name: Thread-0 count1 value = 22
Thread name: Thread-0 count2 value = 21
Thread name: Thread-0 count1 value = 23
Thread name: Thread-0 count2 value = 22
Thread name: Thread-0 count1 value = 24
Thread name: Thread-0 count2 value = 23
Thread name: Thread-0 count1 value = 25
Thread name: Thread-0 count2 value = 24
Thread name: Thread-0 count1 value = 26
Thread name: Thread-0 count2 value = 25
Thread name: Thread-0 count1 value = 27
Thread name: Thread-0 count2 value = 26
Thread name: Thread-0 count1 value = 28
Thread name: Thread-0 count2 value = 27
Thread name: Thread-0 count1 value = 29
Thread name: Thread-0 count2 value = 28
Thread name: Thread-0 count1 value = 30
Thread name: Thread-0 count2 value = 29
Thread name: Thread-0 count1 value = 31
Thread name: Thread-0 count2 value = 30
Thread name: Thread-0 count1 value = 32
Thread name: Thread-0 count2 value = 31
Thread name: Thread-0 count1 value = 33
Thread name: Thread-0 count2 value = 32
Thread name: Thread-0 count1 value = 34
Thread name: Thread-0 count2 value = 33
Thread name: Thread-0 count1 value = 35
Thread name: Thread-0 count2 value = 34
Thread name: Thread-0 count1 value = 36
Thread name: Thread-0 count2 value = 35
Thread name: Thread-0 count1 value = 37
Thread name: Thread-0 count2 value = 36
Thread name: Thread-0 count1 value = 38
Thread name: Thread-0 count2 value = 37
Thread name: Thread-0 count1 value = 39
Thread name: Thread-0 count2 value = 38
Thread name: Thread-0 count1 value = 40
Thread name: Thread-0 count2 value = 39
Thread name: Thread-0 count1 value = 41
Thread name: Thread-0 count2 value = 40
Thread name: Thread-0 count1 value = 42
Thread name: Thread-0 count2 value = 41
Thread name: Thread-0 count1 value = 43
Thread name: Thread-0 count2 value = 42
Thread name: Thread-0 count1 value = 44
Thread name: Thread-0 count2 value = 43
Thread name: Thread-0 count1 value = 45
Thread name: Thread-0 count2 value = 44
Thread name: Thread-0 count1 value = 46
Thread name: Thread-0 count2 value = 45
Thread name: Thread-0 count1 value = 47
Thread name: Thread-0 count2 value = 46
Thread name: Thread-0 count1 value = 48
Thread name: Thread-0 count2 value = 47
Thread name: Thread-0 count1 value = 49
Thread name: Thread-0 count2 value = 48
Thread name: Thread-0 count1 value = 50
Thread name: Thread-0 count2 value = 49
Thread name: Thread-0 count1 value = 51
Thread name: Thread-0 count2 value = 50
Thread name: Thread-0 count1 value = 52
Thread name: Thread-0 count2 value = 51
Thread name: Thread-0 count1 value = 53
Thread name: Thread-0 count2 value = 52
Thread name: Thread-0 count1 value = 54
Thread name: Thread-0 count2 value = 53
Thread name: Thread-0 count1 value = 55
Thread name: Thread-0 count2 value = 54
Thread name: Thread-0 count1 value = 56
Thread name: Thread-0 count2 value = 55
Thread name: Thread-0 count1 value = 57
Thread name: Thread-0 count2 value = 56
Thread name: Thread-0 count1 value = 58
Thread name: Thread-0 count2 value = 57
Thread name: Thread-0 count1 value = 59
Thread name: Thread-0 count2 value = 58
Thread name: Thread-0 count1 value = 60
Thread name: Thread-0 count2 value = 59
Thread name: Thread-0 count1 value = 61
Thread name: Thread-0 count2 value = 60
Thread name: Thread-0 count1 value = 62
Thread name: Thread-0 count2 value = 61
Thread name: Thread-0 count1 value = 63
Thread name: Thread-0 count2 value = 62
Thread name: Thread-0 count1 value = 64
Thread name: Thread-0 count2 value = 63
Thread name: Thread-0 count1 value = 65
Thread name: Thread-0 count2 value = 64
Thread name: Thread-0 count1 value = 66
Thread name: Thread-0 count2 value = 65
Thread name: Thread-0 count1 value = 67
Thread name: Thread-0 count2 value = 66
Thread name: Thread-0 count1 value = 68
Thread name: Thread-0 count2 value = 67
Thread name: Thread-0 count1 value = 69
Thread name: Thread-0 count2 value = 68
Thread name: Thread-0 count1 value = 70
Thread name: Thread-0 count2 value = 69
Thread name: Thread-0 count1 value = 71
Thread name: Thread-0 count2 value = 70
Thread name: Thread-0 count1 value = 72
Thread name: Thread-0 count2 value = 71
Thread name: Thread-0 count1 value = 73
Thread name: Thread-0 count2 value = 72
Thread name: Thread-0 count1 value = 74
Thread name: Thread-0 count2 value = 73
Thread name: Thread-0 count1 value = 75
Thread name: Thread-0 count2 value = 74
Thread name: Thread-0 count1 value = 76
Thread name: Thread-0 count2 value = 75
Thread name: Thread-0 count1 value = 77
Thread name: Thread-0 count2 value = 76
Thread name: Thread-0 count1 value = 78
Thread name: Thread-0 count2 value = 77
Thread name: Thread-0 count1 value = 79
Thread name: Thread-0 count2 value = 78
Thread name: Thread-0 count1 value = 80
Thread name: Thread-0 count2 value = 79
Thread name: Thread-0 count1 value = 81
Thread name: Thread-0 count2 value = 80
Thread name: Thread-0 count1 value = 82
Thread name: Thread-0 count2 value = 81
Thread name: Thread-0 count1 value = 83
Thread name: Thread-0 count2 value = 82
Thread name: Thread-0 count1 value = 84
Thread name: Thread-0 count2 value = 83
Thread name: Thread-0 count1 value = 85
Thread name: Thread-0 count2 value = 84
Thread name: Thread-0 count1 value = 86
Thread name: Thread-0 count2 value = 85
Thread name: Thread-0 count1 value = 87
Thread name: Thread-0 count2 value = 86
Thread name: Thread-0 count1 value = 88
Thread name: Thread-0 count2 value = 87
Thread name: Thread-0 count1 value = 89
Thread name: Thread-0 count2 value = 88
Thread name: Thread-0 count1 value = 90
Thread name: Thread-0 count2 value = 89
Thread name: Thread-0 count1 value = 91
Thread name: Thread-0 count2 value = 90
Thread name: Thread-0 count1 value = 92
Thread name: Thread-0 count2 value = 91
Thread name: Thread-0 count1 value = 93
Thread name: Thread-0 count2 value = 92
Thread name: Thread-0 count1 value = 94
Thread name: Thread-0 count2 value = 93
Thread name: Thread-0 count1 value = 95
Thread name: Thread-0 count2 value = 94
Thread name: Thread-0 count1 value = 96
Thread name: Thread-0 count2 value = 95
Thread name: Thread-0 count1 value = 97
Thread name: Thread-0 count2 value = 96
Thread name: Thread-0 count1 value = 98
Thread name: Thread-0 count2 value = 97
Thread name: Thread-0 count1 value = 99
Thread name: Thread-0 count2 value = 98
Thread name: Thread-0 count1 value = 100
Thread name: Thread-0 count2 value = 99
Thread name: Thread-0 count1 value = 101
Thread name: Thread-0 count2 value = 100
Thread name: Thread-0 count1 value = 102
Thread name: Thread-0 count2 value = 101
Thread name: Thread-0 count1 value = 103
Thread name: Thread-0 count2 value = 102
Thread name: Thread-0 count1 value = 104
Thread name: Thread-0 count2 value = 103
Thread name: Thread-0 count1 value = 105
Thread name: Thread-0 count2 value = 104
Thread name: Thread-0 count1 value = 106
Thread name: Thread-0 count2 value = 105
Thread name: Thread-0 count1 value = 107
Thread name: Thread-0 count2 value = 106
Thread name: Thread-0 count1 value = 108
Thread name: Thread-0 count2 value = 107
Thread name: Thread-0 count1 value = 109
Thread name: Thread-0 count2 value = 108
Thread name: Thread-0 count1 value = 110
Thread name: Thread-0 count2 value = 109
Thread name: Thread-0 count1 value = 111
Thread name: Thread-0 count2 value = 110
Thread name: Thread-0 count1 value = 112
Thread name: Thread-0 count2 value = 111
Thread name: Thread-0 count1 value = 113
Thread name: Thread-0 count2 value = 112
Thread name: Thread-0 count1 value = 114
Thread name: Thread-0 count2 value = 113
Thread name: Thread-0 count1 value = 115
Thread name: Thread-0 count2 value = 114
Thread name: Thread-0 count1 value = 116
Thread name: Thread-0 count2 value = 115
Thread name: Thread-0 count1 value = 117
Thread name: Thread-0 count2 value = 116
Thread name: Thread-0 count1 value = 118
Thread name: Thread-0 count2 value = 117
Thread name: Thread-0 count1 value = 119
Thread name: Thread-0 count2 value = 118
Thread name: Thread-1 count2 value = 119
Thread name: Thread-1 count1 value = 120
Thread name: Thread-1 count2 value = 120
Thread name: Thread-1 count1 value = 121
Thread name: Thread-1 count2 value = 121
Thread name: Thread-1 count1 value = 122
Thread name: Thread-1 count2 value = 122
Thread name: Thread-1 count1 value = 123
Thread name: Thread-1 count2 value = 123
Thread name: Thread-1 count1 value = 124
Thread name: Thread-1 count2 value = 124
Thread name: Thread-1 count1 value = 125
Thread name: Thread-1 count2 value = 125
Thread name: Thread-1 count1 value = 126
Thread name: Thread-1 count2 value = 126
Thread name: Thread-1 count1 value = 127
Thread name: Thread-1 count2 value = 127
Thread name: Thread-1 count1 value = 128
Thread name: Thread-1 count2 value = 128
Thread name: Thread-1 count1 value = 129
Thread name: Thread-1 count2 value = 129
Thread name: Thread-1 count1 value = 130
Thread name: Thread-1 count2 value = 130
Thread name: Thread-1 count1 value = 131
Thread name: Thread-1 count2 value = 131
Thread name: Thread-1 count1 value = 132
Thread name: Thread-1 count2 value = 132
Thread name: Thread-1 count1 value = 133
Thread name: Thread-1 count2 value = 133
Thread name: Thread-1 count1 value = 134
Thread name: Thread-1 count2 value = 134
Thread name: Thread-1 count1 value = 135
Thread name: Thread-1 count2 value = 135
Thread name: Thread-1 count1 value = 136
Thread name: Thread-1 count2 value = 136
Thread name: Thread-1 count1 value = 137
Thread name: Thread-1 count2 value = 137
Thread name: Thread-1 count1 value = 138
Thread name: Thread-1 count2 value = 138
Thread name: Thread-1 count1 value = 139
Thread name: Thread-1 count2 value = 139
Thread name: Thread-1 count1 value = 140
Thread name: Thread-1 count2 value = 140
Thread name: Thread-1 count1 value = 141
Thread name: Thread-1 count2 value = 141
Thread name: Thread-1 count1 value = 142
Thread name: Thread-1 count2 value = 142
Thread name: Thread-1 count1 value = 143
Thread name: Thread-1 count2 value = 143
Thread name: Thread-1 count1 value = 144
Thread name: Thread-1 count2 value = 144
Thread name: Thread-1 count1 value = 145
Thread name: Thread-1 count2 value = 145
Thread name: Thread-1 count1 value = 146
Thread name: Thread-1 count2 value = 146
Thread name: Thread-1 count1 value = 147
Thread name: Thread-1 count2 value = 147
Thread name: Thread-1 count1 value = 148
Thread name: Thread-1 count2 value = 148
Thread name: Thread-1 count1 value = 149
Thread name: Thread-1 count2 value = 149
Thread name: Thread-1 count1 value = 150
Thread name: Thread-1 count2 value = 150
Thread name: Thread-1 count1 value = 151
Thread name: Thread-1 count2 value = 151
Thread name: Thread-1 count1 value = 152
Thread name: Thread-1 count2 value = 152
Thread name: Thread-1 count1 value = 153
Thread name: Thread-1 count2 value = 153
Thread name: Thread-1 count1 value = 154
Thread name: Thread-1 count2 value = 154
Thread name: Thread-1 count1 value = 155
Thread name: Thread-1 count2 value = 155
Thread name: Thread-1 count1 value = 156
Thread name: Thread-1 count2 value = 156
Thread name: Thread-1 count1 value = 157
Thread name: Thread-1 count2 value = 157
Thread name: Thread-1 count1 value = 158
Thread name: Thread-1 count2 value = 158
Thread name: Thread-1 count1 value = 159
Thread name: Thread-1 count2 value = 159
Thread name: Thread-1 count1 value = 160
Thread name: Thread-1 count2 value = 160
Thread name: Thread-1 count1 value = 161
Thread name: Thread-1 count2 value = 161
Thread name: Thread-1 count1 value = 162
Thread name: Thread-1 count2 value = 162
Thread name: Thread-1 count1 value = 163
Thread name: Thread-1 count2 value = 163
Thread name: Thread-1 count1 value = 164
Thread name: Thread-1 count2 value = 164
Thread name: Thread-1 count1 value = 165
Thread name: Thread-1 count2 value = 165
Thread name: Thread-1 count1 value = 166
Thread name: Thread-1 count2 value = 166
Thread name: Thread-1 count1 value = 167
Thread name: Thread-1 count2 value = 167
Thread name: Thread-1 count1 value = 168
Thread name: Thread-1 count2 value = 168
Thread name: Thread-1 count1 value = 169
Thread name: Thread-1 count2 value = 169
Thread name: Thread-1 count1 value = 170
Thread name: Thread-1 count2 value = 170
Thread name: Thread-1 count1 value = 171
Thread name: Thread-1 count2 value = 171
Thread name: Thread-1 count1 value = 172
Thread name: Thread-1 count2 value = 172
Thread name: Thread-1 count1 value = 173
Thread name: Thread-1 count2 value = 173
Thread name: Thread-1 count1 value = 174
Thread name: Thread-1 count2 value = 174
Thread name: Thread-1 count1 value = 175
Thread name: Thread-1 count2 value = 175
Thread name: Thread-1 count1 value = 176
Thread name: Thread-1 count2 value = 176
Thread name: Thread-1 count1 value = 177
Thread name: Thread-1 count2 value = 177
Thread name: Thread-1 count1 value = 178
Thread name: Thread-1 count2 value = 178
Thread name: Thread-1 count1 value = 179
Thread name: Thread-1 count2 value = 179
Thread name: Thread-1 count1 value = 180
Thread name: Thread-1 count2 value = 180
Thread name: Thread-1 count1 value = 181
Thread name: Thread-1 count2 value = 181
Thread name: Thread-1 count1 value = 182
Thread name: Thread-1 count2 value = 182
Thread name: Thread-1 count1 value = 183
Thread name: Thread-1 count2 value = 183
Thread name: Thread-1 count1 value = 184
Thread name: Thread-1 count2 value = 184
Thread name: Thread-1 count1 value = 185
Thread name: Thread-1 count2 value = 185
Thread name: Thread-1 count1 value = 186
Thread name: Thread-1 count2 value = 186
Thread name: Thread-1 count1 value = 187
Thread name: Thread-1 count2 value = 187
Thread name: Thread-1 count1 value = 188
Thread name: Thread-1 count2 value = 188
Thread name: Thread-1 count1 value = 189
Thread name: Thread-1 count2 value = 189
Thread name: Thread-1 count1 value = 190
Thread name: Thread-1 count2 value = 190
Thread name: Thread-1 count1 value = 191
Thread name: Thread-1 count2 value = 191
Thread name: Thread-1 count1 value = 192
Thread name: Thread-1 count2 value = 192
Thread name: Thread-1 count1 value = 193
Thread name: Thread-1 count2 value = 193
Thread name: Thread-1 count1 value = 194
Thread name: Thread-1 count2 value = 194
Thread name: Thread-1 count1 value = 195
Thread name: Thread-1 count2 value = 195
Thread name: Thread-1 count1 value = 196
Thread name: Thread-1 count2 value = 196
Thread name: Thread-1 count1 value = 197
Thread name: Thread-1 count2 value = 197
Thread name: Thread-1 count1 value = 198
Thread name: Thread-1 count2 value = 198
Thread name: Thread-1 count1 value = 199
Thread name: Thread-1 count2 value = 199
Thread name: Thread-1 count1 value = 200
Thread name: Thread-1 count2 value = 200
Count1=200 Count2=200