tiện đây cho em hỏi luôn câu này với ạ! (à nếu đc thì mod đổi tên hộ em topic thành hỏi đáp chung được ko ạ! em hỏi luôn ở đây cho tiện đỡ phải lập topic nữa )
khi em đọc code trong IDA thì có 1 đoạn code ntn:
Code:
while ( *a2 > 0 )
{
if ( *a2 == _InterlockedCompareExchange(a2, *a2 + 1, *a2) )
return 1;
}
return 0;
em thực sự chưa hiểu đoạn code này để làm gì! theo như e hiểu lơ mơ thì biến a2 là biến đếm (của 1 cái gì đấy), đoạn trên chỉ nhằm nhiệm vụ là tăng biến đếm a2 lên nhưng đảm bảo đồng bộ giữa các cache của CPU - do đoạn code trên có thể được chạy trên các CPU khác nhau, mà mỗi CPU lại có 1 cache khác nhau nên cần như vây ...
e hiểu thế đúng ko ạ? mà nếu muốn dùng cái này trong VC++ thì cần làm ntn ạ? hay cứ như trên paste vào
mong các anh giúp đỡ!