why the following python program does not face any concurrency problems without synchronize mechanism?

smith jack thinke365 at gmail.com
Sat Jul 9 22:45:30 CEST 2011

from threading import Thread

def calc(start, end):
    total = 0;
    for i in range(start, end + 1):
        total += i;
    print '----------------------result:', total
    return total

t = Thread(target=calc, args=(1,100))

I have run this program for many times,and the result is always 5050,
if there is any concurrency problem, the result should not be 5050,
which is never met, anyhow
I mean this program should get the wrong answer at some times, but
this never happens, why?
can concurrency without synchronize mechanism always get the right answer?
any special case in python programming?

More information about the Python-list mailing list