Em chào a, e là Tú, e có biết nhóm Unity ạ. E đang đọc và thực hiện lại 1 số ví dụ của a trong trang này của a https://tvd12.com/volatile-and-atomic/ . Em đang bị đánh giá ở phần VolatileVí dụ khi em thử bỏ qua biến biến trong biến hoạt động thì luồng 2 của em vẫn hoạt động bình thường, e không hiểu tại sao, mong a chỉ dẫn
ý em là code thế này:
Nó vẫn in được
application started
đúng không em?vâng đúng rồi a,
vâng đúng rồi a,
kết quả của em :
application preparing
name = Thread-0
name = Thread-1
name = Thread-2
stop app = 5008
stop app 2222 = 5008
Process finished with exit code 0
do em có thêm dòng
System.out.println("name = "+Thread.currentThread().getName());
em ạ. Anh cũng chưa tìm hiểu sâu về bên trong xem thằng volatile nó làm gì, nhưng theo một số bạn bè của anh giải thích thì khi em dùng cái lệnh System.out thì nó làm cho cái thanh ghi nó bị đầy, và sau khi chạy xong thì nó nạp lại cái giá trị active đã thay đổi vào thanh ghi và thread có vòng while nó nhận được sự thay đổi đó. Tuy nhiên nó đúng với C, còn với Java cần kiểm chứng thêm em nhé.Vâng em cảm ơn a