【正确答案】
B
【答案解析】 多线程(Multithreading)技术指的是从软件或者硬件上实现多个线程并发执行的技术,本题中,+1操作的执行过程如下:取出变量a,对变量a执行+1操作,把计算结果放回去。如果两个线程中+1操作都没有被中断,所有的+1操作都生效了,那么此时相应地对a执行了200次+1操作,在这种情况下,a的值变为200。由于这两个线程在对a执行+1操作的时候,并没有加锁,因此,有可能会导致部分+1操作丢失,如下所示:
1)线程1读取变量a的值(读取到寄存器中)为0。
2)线程2读取变量a的值,此时读取到的值也为0。
3)线程1对a执行+1操作并放回去,此时a的值为1。
4)线程2也对a执行+1操作并放回去,由于此时线程2中寄存器中a的值为0,执行+1操作后变为1并放回去,此时a的值还为1。
在这种情况下,线程1对a执行+1的操作就会丢失。因此,执行结束后,a的最大值为200。所以,选项B正确。