Bagikan melalui


Fungsi InterlockedCompareExchange64 (winnt.h)

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai dan pertukaran 64-bit yang ditentukan dengan nilai 64-bit lainnya berdasarkan hasil perbandingan.

Sintaks

LONG64 InterlockedCompareExchange64(
  [in, out] LONG64 volatile *Destination,
  [in]      LONG64          ExChange,
  [in]      LONG64          Comperand
);

Parameter

[in, out] Destination

Penunjuk ke nilai tujuan.

[in] ExChange

Nilai pertukaran.

[in] Comperand

Nilai untuk dibandingkan dengan Tujuan.

Nilai kembali

Fungsi mengembalikan nilai awal parameter Tujuan .

Keterangan

Fungsi membandingkan nilai Tujuan dengan nilai Comparand . Jika nilai Tujuan sama dengan nilai Comparand , nilai Exchange disimpan dalam alamat yang ditentukan oleh Tujuan. Jika tidak, tidak ada operasi yang dilakukan.

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 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 _InterlockedCompareExchange64.

Fungsi ini menghasilkan hambatan memori penuh (atau pagar) untuk memastikan bahwa operasi memori selesai secara berurutan.

Sistem berbasis itanium: Untuk aplikasi kritis performa, gunakan InterlockedCompareExchangeAcquire64 atau InterlockedCompareExchangeRelease64 sebagai gantinya.

Catatan Fungsi ini didukung pada sistem berbasis Windows RT.
 

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 (sertakan Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Akses Variabel Yang Saling Diblokir

InterlockedCompare64Exchange128

InterlockedCompareExchange

InterlockedCompareExchange128

InterlockedCompareExchange16

InterlockedCompareExchange16Acquire

InterlockedCompareExchange16NoFence

InterlockedCompareExchange16Release

InterlockedCompareExchangeAcquire

InterlockedCompareExchangeAcquire64

InterlockedCompareExchangeNoFence

InterlockedCompareExchangeNoFence64

InterlockedCompareExchangePointer

InterlockedCompareExchangePointerAcquire

InterlockedCompareExchangePointerNoFence

InterlockedCompareExchangePointerRelease

InterlockedCompareExchangeRelease

InterlockedCompareExchangeRelease64

Fungsi Sinkronisasi