Bagikan melalui


Apa yang Baru dalam Sinkronisasi

Windows menyertakan elemen pemrograman baru berikut untuk sinkronisasi.

Windows 8

Fungsi Baru

DeleteSynchronizationBarrier

Menghapus hambatan sinkronisasi.

EnterSynchronizationBarrier

Menyebabkan utas panggilan menunggu pada penghalang sinkronisasi hingga jumlah maksimum utas telah memasuki penghalang.

GetOverlappedResultEx

Mengambil hasil operasi yang tumpang tindih pada file yang ditentukan, pipa bernama, atau perangkat komunikasi dalam interval waktu habis yang ditentukan. Thread panggilan dapat melakukan penantian yang dapat diberikan peringatan.

InitializeSynchronizationBarrier

Menentukan jumlah maksimum utas dan jumlah putar untuk hambatan sinkronisasi baru.

WaitOnAddress

Menunggu nilai di alamat yang ditentukan untuk berubah.

WakeByAddressAll

Mengaktifkan semua utas yang menunggu perubahan nilai dari sebuah alamat.

WakeByAddressSingle

Membangunkan satu utas yang sedang menunggu nilai alamat berubah.

Fungsi Baru yang Saling Terhubung

InterlockedAddNoFence

Melakukan operasi penambahan atom pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAddNoFence64

Melakukan operasi penambahan atomik pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

TerkunciDanTanpaPagar

Melakukan operasi AND atomik pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAnd8NoFence

Melakukan operasi AND atomik pada nilai karakter yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAnd16NoFence

Melakukan operasi Atom AND pada nilai SHORT yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedAnd64NoFence

Melakukan operasi AND atomik pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedBitTestAndComplement64

Menguji dan melengkapi bit yang ditentukan dari nilai LONG64 yang spesifik. Operasi ini atomik.

InterlockedBitTestAndResetAcquire

Menguji bit yang ditentukan dari nilai LONG yang ditentukan dan mengaturnya ke 0. Operasi ini atomik, dan dilakukan dengan memperoleh semantik pengurutan memori.

InterlockedBitTestAndResetRelease

Menguji bit tertentu dari nilai LONG yang ditentukan dan mengaturnya ke 0. Operasi ini bersifat atomik, dan dilakukan dengan menggunakan semantik pelepasan memori.

InterlockedBitTestAndSetAcquire

Menguji bit yang ditentukan dari nilai LONG dan menjadikannya 1. Operasi ini atomik, dan dilakukan dengan memperoleh semantik pengurutan memori.

InterlockedBitTestAndSetRelease

Menguji bit yang ditentukan dari nilai LONG dan mengaturnya menjadi 1. Operasi ini bersifat atomik dan dilakukan dengan semantik pengurutan memori yang dilepaskan.

InterlockedCompareExchangeNoFence

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai 32-bit yang ditentukan dan menukarnya dengan nilai 32-bit lain berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedCompareExchange16

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

InterlockedCompareExchange16Acquire

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai 16-bit yang ditentukan dan menukar dengan nilai 16-bit lainnya berdasarkan hasil perbandingan. Operasi ini dilakukan dengan memperoleh semantik pengurutan memori.

InterlockedCompareExchange16Release

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai 16-bit dan menukarkannya dengan nilai 16-bit lainnya berdasarkan hasil perbandingan. Pertukaran dilakukan dengan semantik pengurutan memori rilis.

InterlockedCompareExchange16NoFence

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai 16-bit yang ditentukan dan menukar dengan nilai 16-bit lain berdasarkan hasil dari perbandingan tersebut. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedCompareExchangeNoFence64

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai 64-bit yang ditentukan dan menukarnya dengan nilai 64-bit lain berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedCompareExchange128

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

InterlockedCompareExchangePointerNoFence

Melakukan operasi perbandingan dan pertukaran atomik pada nilai yang ditentukan. Fungsi ini membandingkan dua nilai penunjuk dan menukarnya dengan nilai penunjuk lain berdasarkan hasil perbandingan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedDecrementNoFence

Mengurangi (mengurangi satu) nilai variabel 32-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedDecrement16

Pengurangan (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atom.

InterlockedDecrement16Acquire

Mengurangi (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atom. Operasi ini dilakukan dengan memperoleh semantik pengurutan memori.

InterlockedDecrement16Release

Mengurangi (berkurang satu) nilai dari variabel 16-bit yang ditentukan sebagai operasi atom. Operasi ini dilakukan dengan semantik pengurutan memori 'release'.

InterlockedDecrement16NoFence

Pengurangan (berkurang satu) nilai variabel 16-bit yang ditentukan sebagai operasi atom. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedDecrementNoFence64

Pengurangan (berkurang satu) nilai variabel 64-bit yang ditentukan sebagai operasi atom. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeNoFence

Mengatur variabel 64-bit ke nilai yang ditentukan sebagai operasi atom. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchange8

Mengatur variabel 8-bit ke nilai yang ditentukan sebagai operasi atom.

InterlockedExchange16Acquire

Mengatur variabel 16-bit ke nilai yang ditentukan sebagai operasi atom. Operasi ini dilakukan dengan menggunakan semantik pengurutan memori tipe acquire.

InterlockedExchange16NoFence

Mengatur variabel 16-bit ke nilai yang ditentukan sebagai operasi atom. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeNoFence64

Mengatur variabel 64-bit ke nilai yang ditentukan sebagai operasi atom. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangePointerNoFence

Menukar sepasang alamat secara atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeAddNoFence

Melakukan operasi penambahan atomik dari dua nilai 32-bit. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedExchangeAddNoFence64

Melakukan penambahan atom dari dua nilai 64-bit. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

interlockedIncrementNoFence

Meningkatkan (bertambah satu) nilai variabel 32-bit yang ditentukan secara atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedIncrement16

Kenaikan (bertambah satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik.

InterlockedIncrement16Acquire

Meningkatkan (menambah satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan menggunakan semantik pengurutan memori jenis acquire.

InterlockedIncrement16Release

Menambah (menaikkan satu) nilai variabel 16-bit yang ditentukan secara atomik. Operasi dilakukan menggunakan semantik pengurutan memori rilis.

InterlockedIncrement16NoFence

Meningkatkan (menambah satu) nilai variabel 16-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

interlockedIncrementNoFence64

Meningkatkan (menambah satu) nilai dari variabel 64-bit yang ditentukan sebagai operasi atomik. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

TerjalinAtauTanpaPagar

Melakukan operasi Atom OR pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOr8NoFence

Melakukan operasi OR atomik pada nilai karakter yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOr16NoFence

Melakukan operasi atom ATAU terhadap nilai SHORT yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedOr64NoFence

Melakukan operasi OR atomik pada nilai LONGLONG dan yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedPushListSListEx

Menyisipkan daftar tertaut tunggal di awal daftar tertaut tunggal lainnya. Akses ke daftar disinkronkan pada sistem multiprosesor. Versi metode ini tidak menggunakan konvensi panggilan __fastcall.

InterlockedXorNoFence

Melakukan operasi XOR atomik pada nilai LONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedXor8NoFence

Melakukan operasi XOR atomik pada nilai karakter yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedXor16NoFence

Melakukan operasi XOR atomik pada nilai SHORT yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

InterlockedXor64NoFence

Melakukan operasi XOR atomik pada nilai LONGLONG yang ditentukan. Operasi ini dilakukan secara atomik, tetapi tanpa menggunakan penghalang memori.

Windows 7

Fungsi Baru

SetWaitableTimerEx

Mengaktifkan timer yang dapat ditunggu yang ditentukan dan menyediakan informasi konteks untuk timer.

TryAcquireSRWLockExclusive

Mencoba memperoleh kunci SRW (Slim Reader/Writer) dalam mode eksklusif. Jika panggilan berhasil, utas panggilan mengambil kepemilikan kunci.

TryAcquireSRWLockShared

Mencoba memperoleh kunci pembaca/penulis tipis (SRW) dalam mode bersama. Jika panggilan berhasil, utas panggilan mengambil kepemilikan kunci.

Struktur Baru

REASON_CONTEXT

Berisi informasi konteks untuk timer yang diaktifkan dengan SetWaitableTimerEx.