在一次采访中,我被问到一个问题,即变量在没有同步的情况下由2个线程增加200次,变量的最大值和最小值是多少? 请有人帮我解答。
变量int的类型
每个增量为1.
初始值不告诉我。
答案 0 :(得分:3)
这里有趣的问题是这个面试问题是开放式的。
在面试中回答这个问题的唯一合理方法是缩小未知数。
short
增加long
会很尴尬。我们知道启动的变量是什么吗?它可以从我们所知道的Integer.MIN_VALUE
开始,因此" max"可能是一个非常小的数字。
你知道变量增加了多少?增量假定 +1,但情况可能并非如此。
这是您在不了解实施细节的情况下回答问题的方法;在尝试回答之前,请确保缩小要求并获得范围和起始期望的具体细节。
对于实际的编码部分,请考虑任一线程都可以看到陈旧数据。无法保证变量会增加超出您调用它的次数(乘以增量值),因此 是硬顶和楼层。两者都取决于你消除未知数的歧义。
答案 1 :(得分:-2)
考虑到200的增量没有,假设每个增量为1,我猜的变量类型是: -
max和min将取决于可变电流值和每个增量大小,此处假设为1。