为什么程序执行错误?,原有的flag等于true。为什么执行不了
import math
m = int(input("请输入一个整数(>1):"))
k = int(math.sqrt(m))
flag = True
for i in range(2, k+2):
if (m % i == 0): flag = False
else: i += 1
if (flag == True)and m>1: print(m, "是素数!")
else: print(m, "是合数!")
flag.s会按预期工作,线程0先运行,并且进程上下文切换前运行完成。之后线程1才开始运行,没有出现多个线程同时访问临界区的情况,所以预测其会产生正确的结果。
count:线程0和线程1分别进行了一次+1操作。
flag最终会被线程1在1007处设置为0。