globalnum = 0
n = 1
class T(threading.Thread):
def run(self):
global globalnum
globalnum += n
for _ in xrange(0, 999):
t = T()
t.start()
print globalnum
kết quả là 999 Trong thử nghiệm của tôi, tôi có vẻ như + = thread safe Câu hỏi của tôi là: là + = thực sự là an toàn không?là + = trong chuỗi python có an toàn không?
Bạn có tin rằng bất kỳ hai của chủ đề của bạn thực sự đang chạy cùng một lúc? – stark
Việc cố gắng xác định chủ đề an toàn bằng phương tiện kiểm tra là dấu hiệu của sự thiếu hiểu biết hoặc điên rồ. Điểm mấu chốt về mọi thứ _not_ là an toàn chỉ là bạn không thể dựa vào một hành vi cụ thể chỉ vì bạn đã thấy nó vài triệu lần mà không có độ lệch. –