Fungsi InterlockedExchangeAdd64 (winnt.h)
Melakukan penambahan atomik dari dua nilai 64-bit.
Untuk beroperasi pada nilai 32-bit, gunakan fungsi InterlockedExchangeAdd .
Sintaks
LONG64 InterlockedExchangeAdd64(
[in, out] LONG64 volatile *Addend,
[in] LONG64 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 .
Nilai kembali
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 ditujukkan oleh Addend.
Variabel untuk fungsi ini harus diselaraskan pada batas 64-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 terhubung 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 _InterlockedExchangeAdd64.
Fungsi ini menghasilkan hambatan memori penuh (atau pagar) untuk memastikan bahwa operasi memori selesai secara berurutan.
Sistem berbasis Itanium: Untuk aplikasi penting performa, gunakan InterlockedExchangeAddAcquire64 sebagai gantinya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winnt.h (termasuk Windows.h) |
Lihat juga
Akses Variabel Yang Saling Diblokir
InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64