Fungsi InterlockedExchangeAdd (winnt.h)
Melakukan penambahan atom dua nilai 32-bit.
Untuk beroperasi pada nilai 64-bit, gunakan fungsi InterlockedExchangeAdd64 .
Sintaks
LONG InterlockedExchangeAdd(
[in, out] LONG volatile *Addend,
[in] LONG Value
);
Parameter
[in, out] Addend
Penunjuk ke variabel. Nilai variabel ini akan diganti dengan hasil operasi.
[in] Value
Nilai yang akan ditambahkan ke variabel yang ditujukkan oleh parameter Tambahkan .
Mengembalikan nilai
Fungsi mengembalikan nilai awal parameter Addend .
Keterangan
Fungsi melakukan penambahan nilai atomik ke nilai yang ditunjukkan oleh Addend. Hasilnya disimpan dalam alamat yang ditentukan oleh Addend. Fungsi mengembalikan nilai awal variabel yang ditujukan oleh Addend.
Variabel untuk fungsi ini harus diselaraskan pada batas 32-bit; jika tidak, fungsi ini akan bertingkah tidak terduga pada sistem x86 multiprosedur dan sistem non-x86 apa pun. Lihat _aligned_malloc.
Fungsi yang saling diblokir menyediakan mekanisme sederhana untuk menyinkronkan akses ke variabel yang dibagikan oleh beberapa utas. Fungsi ini bersifat atomik sehubungan dengan panggilan ke fungsi lain yang saling diblokir.
Fungsi ini diimplementasikan menggunakan kompilator intrinsik jika memungkinkan. Untuk informasi selengkapnya, lihat file header WinBase.h dan _InterlockedExchangeAdd
Fungsi ini menghasilkan hambatan memori penuh (atau pagar) untuk memastikan bahwa operasi memori selesai secara berurutan.
Sistem berbasis itanium: Untuk aplikasi kritis performa, gunakan InterlockedExchangeAddAcquire sebagai gantinya.
Persyaratan
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winnt.h (sertakan Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat juga
Akses Variabel Yang Saling Diblokir
InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk