haylachoi
Senior Member
Từ kết quả trong hình thì có thể thấy, biến i và u có giá trị bị lặp lại, còn biến d thì ko bị lặp lại.
Có ai giải thích hộ mình tại sao lại có kết quả như trên ko?
Các giá trị của i và u bị lặp lại thì mình biết do có thread khác thay đổi các giá trị này, còn về biến d ko bị lặp lại, mình chỉ đoán là biến d sau mỗi lần lặp sẽ bị giải phóng nên thread nào muốn lấy giá trị của d thì phải lấy trước khi nhảy sang lần lặp tiếp, tuy nhiên lại ko đoán dc vì sao tại thời điểm đoạn lệnh "int d= i" chuẩn bị chạy, ko có thread nào khác thay đổi biến i.
PS: Mình bị nhầm đoạn thread khác thay đổi giá trị i. Việc thay đổi giá trị của các biến chỉ do main thread làm. Các giá trị khác nhau là vì thời điểm truy cập vào bộ nhớ để lấy giá trị đó thì đã giá trị đã bị đổi, d ko đổi vì d có vùng nhớ riêng.
Last edited: